Redis 学习笔记(一) — 环境搭建及命令
2016-10-18 22:31
645 查看
Redis 学习笔记(一) — 环境搭建及命令
标签(空格分隔): Redis Redis环境搭建 Redis命令Redis环境搭建
Redis介绍Redis是一款开源(BSD许可),基于内存存储的数据结构服务器。可用于数据库存储、高速缓存和消息队列代理。它支持字符串、哈希表、列表集合、有序集合、位图、hyperloglogs等数据类型。 Redis的特点: 1. Redis是一个高性能的Key/Value数据库 2.基于内存 -- 磁盘备份 3.数据类型丰富(String(验证码)),List Set ZSet(排行榜),Hash(Key-Value) 4.持久化(RDB(日志文件) AOF(内存快照)) 5.Value最大支持1GB存储
下载:http://download.redis.io/redis-stable.tar.gz
Redis安装
1.下载Redis所需依赖: [root@qikk ~]# yum install -y gcc [root@qikk ~]# yum install -y tcl [root@qikk ~]# yum install -y ruby [root@qikk ~]# yum install -y rubygems [root@qikk ~]# yum install -y redis 提示:以上命令需在联网下使用 2.编译安装Redis: 解压下载的redis: [root@qikk ~]# tar -zxf redis-stable.tar.gz 在解压过后的目录里编译: [root@qikk redis-stable] make intall PREFIX=指定编译目录 注:编译完成后,会在编译目录产生执行文件redis-server,redis-cli、redis-benchmark、redis-check-rdb 、redis-check-aof、redis-sentinel、redis-trib.rb 等可执行命令。
启动Redis服务
[root@qikk redis-stable]# ./src/redis-server --protected-mode no 注:本次实验Redis version 3.2.1,需要暂时关闭保护
查看Redis进程
[root@qikk redis-stable]# ps -ax | grep redis 1442 pts/0 Sl+ 0:00 ./redis-server 127.0.0.1:6379 1446 pts/1 S+ 0:00 grep redi
连接Redis服务
[root@qikk redis-stable]#./src/redis-cli -h 127.0.0.1 -p 6379 -h 表示连接者的IP地址 -p 表示要连接redis的端口号
关闭Redis服务
就是关掉redis进程 [root@qikk redis-stable]# kill -9 1442
Redis命令集
关于Key的操作1.SET key value [EX seconds] [PX milliseconds] [NX|XX] 设置一个key 127.0.0.1:6379> SET gender male OK
2.GET key 获得一个key 127.0.0.1:6379> GET gender "male"
3.EXISTS key [key ...] 查看Key是否存在 127.0.0.1:6379> EXISTS zhangsan (integer) 0
4.DEL key [key ...] 删除指定的 keys 127.0.0.1:6379> DEL name age (integer) 2
5.TYPE key 判断key的类型 127.0.0.1:6379> TYPE name string
6.KEYS pattern 使用* [] - ^通配符号匹配对应的key 127.0.0.1:6379> KEYS *a* 1) "name" 2) "age" 注:n?me 匹配 name, nxme,nbme... n*me 匹配 nme,name,naaaame... n[ae]me 匹配 name 和 neme 选择一个 n[^a]me 匹配 nbme, ncme..., 不匹配 name n[a-b]me 匹配 name 和 nbme 使用 \ 转义特殊字符.
7.RANDOMKEY 随机访问当前库中的key 127.0.0.1:6379> RANDOMKEY "age" 127.0.0.1:6379> RANDOMKEY "name" 127.0.0.1:6379> RANDOMKEY "name"
8.RENAME key newkey 修改key的名称 127.0.0.1:6379> RENAME name name2 OK 127.0.0.1:6379> exists name2 (integer) 1
9.RENAMENX key newkey 修改key的名字,如果已存在就不修改 127.0.0.1:6379> RENAMENX name2 name (integer) 1 127.0.0.1:6379> RENAMENX name age (integer) 0
10.EXPIRE key seconds 指定某一个key的过期时间以秒为单位 127.0.0.1:6379> EXPIRE name 60 (integer) 1
11.PEXPIRE key milliseconds 指定某一个key的过期时间以毫秒为单位 127.0.0.1:6379> PEXPIRE age 60000 (integer) 1
12.TTL key 查看key是否过期返回秒,永不过期则返回-1 127.0.0.1:6379> TTL name (integer) 41 127.0.0.1:6379> TTL age (integer) -1
13.TTL key 查看key是否过期返回毫秒,永不过期则返回-1 127.0.0.1:6379> PTTL age (integer) 33168
14.PERSIST key 删除key的过期时间 127.0.0.1:6379> PERSIST age (integer) 1 127.0.0.1:6379> PTTL age (integer) -1
15.SELECT index 选择数据库index表示数据库下标默认值,可选值0~15(可配) 127.0.0.1:6379> SELECT 0 OK
16.MOVE key db 移动key到指定数据库 127.0.0.1:6379> SELECT 0 OK 127.0.0.1:6379> GET name "zhangSan" 127.0.0.1:6379> SELECT 1 OK 127.0.0.1:6379[1]> GET name (nil) 127.0.0.1:6379[1]> SELECT 0 OK 127.0.0.1:6379> MOVE name 1 (integer) 1 127.0.0.1:6379> SELECT 1 OK 127.0.0.1:6379[1]> GET name "zhangSan"
关于Value的操作
String 类型
1.SET key value 保存 k-v 127.0.0.1:6379> SET user qikk OK
2.SETNX key value 当key不存在时候 保存k-v 127.0.0.1:6379> SETNX user qikk (integer) 0 127.0.0.1:6379> SETNX name zhangSan (integer) 1
3.GET key 获取指定key的值 127.0.0.1:6379> GET user "qikk"
4.GETSET key value 获取值并且赋新值 127.0.0.1:6379> GETSET user kkqi "qikk" 127.0.0.1:6379> GET user "kkqi"
5.MSET key value [key value ...] 一次性设置多个k-v 127.0.0.1:6379> MSET user qikk name zhangSan OK 127.0.0.1:6379> KEYS * 1) "name" 2) "user"
6.MGET key [key ...] 一次性获取多这个值 127.0.0.1:6379> MGET user name 1) "qikk" 2) "zhangSan"
7.MSETNX key value [key value ...] 次性设置多个k-v,如果存在就放弃 127.0.0.1:6379> MSETNX user qikk age 18 (integer) 0 127.0.0.1:6379> MSETNX age 18 gender male (integer) 1
8.INCR key 给指定的key加1 127.0.0.1:6379> GET age "18" 127.0.0.1:6379> INCR age (integer) 19 127.0.0.1:6379> GET age "19"
9.DECR key 给指定的key减1 127.0.0.1:6379> GET age "19" 127.0.0.1:6379> DECR age (integer) 18 127.0.0.1:6379> GET age "18"
10.INCRBY key value 给指定的key值增加value 127.0.0.1:6379> GET age "18" 127.0.0.1:6379> INCRBY age 10 (integer) 28 127.0.0.1:6379> GET age "28"
11.DECRBY key value 给指定的key值减去value 127.0.0.1:6379> GET age "28" 127.0.0.1:6379> DECRBY age 10 (integer) 18 127.0.0.1:6379> GET age "18"
12.STRLEN key 获取指定key-value的长度 127.0.0.1:6379> STRLEN user (integer) 4 127.0.0.1:6379> GET user "qikk"13.SETRANGE key offset value 覆盖指定值 127.0.0.1:6379> GET user "qikk" 127.0.0.1:6379> SETRANGE user 0 kk (integer) 4 127.0.0.1:6379> GET user "kkkk"14.APPEND key value 追加 127.0.0.1:6379> GET user "qikk" 127.0.0.1:6379> APPEND user lovejava (integer) 12 127.0.0.1:6379> GET user "qikklovejava"
List操作1.LPUSH/RPUSH key value [value ...] 存储值(LPUSH将某个值加入到一个key列表头部,RPUSH将某个值加入到一个key列表末尾) LPUSH: 127.0.0.1:6379> LPUSH user qikk zhangSan liSi (integer) 3 127.0.0.1:6379> LRANGE user 0 2 1) "liSi" 2) "zhangSan" 3) "qikk" RPUSH: 127.0.0.1:6379> RPUSH user wangWu (integer) 4 127.0.0.1:6379> LRANGE user 0 3 1) "liSi" 2) "zhangSan" 3) "qikk" 4) "wangWu"2.LRANGE key start stop 遍历指定下标内的元素 stop 等-1代表遍历所有 127.0.0.1:6379> LRANGE user 0 3 1) "liSi" 2) "zhangSan" 3) "qikk" 4) "wangWu"3.LLEN key 计算list长度 127.0.0.1:6379> LLEN user (integer) 44.LINDEX key index 获取指定下标元素 127.0.0.1:6379> LINDEX user 0 "liSi" 127.0.0.1:6379> LINDEX user 3 "wangWu"5.LSET key index value 修改指定位置的值 127.0.0.1:6379> LINDEX user 3 "wangWu" 127.0.0.1:6379> LSET user 3 zhaoLiu OK 127.0.0.1:6379> LINDEX user 3 "zhaoLiu"6.LREM key count value 删除指定数目的值 127.0.0.1:6379> LRANGE user 0 -1 1) "liSi" 2) "zhangSan" 3) "qikk" 4) "zhaoLiu" 5) "zhaoLiu" 127.0.0.1:6379> LREM user 5 zhaoLiu (integer) 27.LINSERT key BEFORE|AFTER pivot value 在指定元素位置插入值 127.0.0.1:6379> LRANGE user 0 -1 1) "liSi" 2) "zhangSan" 3) "qikk" 127.0.0.1:6379> LINSERT user before qikk wangWu (integer) 4 127.0.0.1:6379> LRANGE user 0 -1 1) "liSi" 2) "zhangSan" 3) "wangWu" 4) "qikk"8.LPOP/RPOP key 弹出元素 127.0.0.1:6379> LRANGE user 0 -1 1) "liSi" 2) "zhangSan" 3) "wangWu" 4) "qikk" 127.0.0.1:6379> LPOP user "liSi" 127.0.0.1:6379> RPOP user "qikk"9.LTRIM key start stop 保留子集 127.0.0.1:6379> LRANGE user 0 -1 1) "zhangSan" 2) "wangWu" 3) "qikk" 127.0.0.1:6379> LTRIM user 0 1 OK 127.0.0.1:6379> LRANGE user 0 -1 1) "zhangSan" 2) "wangWu"
Set 操作1.SADD key member [member ...] 为集合添加元素 127.0.0.1:6379> SADD user qikk zhangSan liSi (integer) 32.SMEMBERS key 显示集合中所有元素 (无序) 127.0.0.1:6379> SMEMBERS user 1) "qikk" 2) "zhangSan" 3) "liSi"3.SCARD key 计算元素数量 127.0.0.1:6379> SCARD user (integer) 34.SDIFF key [key ...] 计算集合差集 127.0.0.1:6379> SMEMBERS user 1) "qikk" 2) "zhangSan" 3) "liSi" 127.0.0.1:6379> SMEMBERS user1 1) "whangWu" 2) "zhangSan" 127.0.0.1:6379> SDIFF user user1 1) "qikk" 2) "liSi"5.SDIFFSTORE destination key [key ...] 存储差集 127.0.0.1:6379> SDIFFSTORE user2 user user1 (integer) 2 127.0.0.1:6379> SMEMBERS user2 1) "qikk" 2) "liSi"6.SINTER key [key ...] 计算交集 127.0.0.1:6379> SMEMBERS user 1) "qikk" 2) "zhangSan" 3) "liSi" 127.0.0.1:6379> SMEMBERS user1 1) "whangWu" 2) "zhangSan" 127.0.0.1:6379> SINTER user user1 1) "zhangSan"7.SINTERSTORE destination key [key ...] 存储交集 127.0.0.1:6379> SINTERSTORE user3 user user1 (integer) 1 127.0.0.1:6379> SMEMBERS user3 1) "zhangSan"8.SISMEMBER key member 判断member是不是成员 127.0.0.1:6379> SISMEMBER user qikk (integer) 1 127.0.0.1:6379> SISMEMBER user zhaoLiu (integer) 09.SMOVE source destination member从一个集合中向另一个集合移动元素 127.0.0.1:6379> SMEMBERS user 1) "qikk" 2) "zhangSan" 3) "liSi" 127.0.0.1:6379> SMEMBERS user1 1) "whangWu" 2) "zhangSan" 127.0.0.1:6379> SMOVE user user1 liSi (integer) 1 127.0.0.1:6379> SMEMBERS user 1) "qikk" 2) "zhangSan" 127.0.0.1:6379> SMEMBERS user1 1) "whangWu" 2) "zhangSan" 3) "liSi"10.SPOP key [count] 弹出多少元素 127.0.0.1:6379> SMEMBERS user 1) "qikk" 2) "zhangSan" 3) "liSi" 127.0.0.1:6379> SPOP user 2 1) "zhangSan" 2) "qikk" 127.0.0.1:6379> SMEMBERS user 1) "liSi"11.SRANDMEMBER key [count] 随机返回元素(不弹出) 127.0.0.1:6379> SMEMBERS user 1) "qikk" 2) "zhangSan" 3) "liSi" 127.0.0.1:6379> SRANDMEMBER user 2 1) "qikk" 2) "zhangSan"12.SREM key member [member ...] 删除指定元素 127.0.0.1:6379> SMEMBERS user 1) "qikk" 2) "zhangSan" 3) "liSi" 127.0.0.1:6379> SREM user qikk (integer) 1 127.0.0.1:6379> SMEMBERS user 1) "zhangSan" 2) "liSi"13.SSCAN key cursor [MATCH pattern] [COUNT count] 查询遍历 127.0.0.1:6379> SSCAN user 0 COUNT 3 1) "0" 2) 1) "qikk" 2) "zhangSan" 3) "liSi" 127.0.0.1:6379> SSCAN user 3 COUNT 3 1) "0" 2) 1) "liSi"14.SUNION key [key ...] 求并集 127.0.0.1:6379> SMEMBERS user 1) "qikk" 2) "zhangSan" 3) "liSi" 127.0.0.1:6379> SMEMBERS user1 1) "zhangSan" 2) "liSi" 127.0.0.1:6379> SUNION user user1 1) "qikk" 2) "zhangSan" 3) "liSi"15.SUNIONSTORE destination key [key ...] 存储并集的内容 127.0.0.1:6379> SMEMBERS user 1) "qikk" 2) "zhangSan" 3) "liSi" 127.0.0.1:6379> SMEMBERS user1 1) "zhangSan" 2) "liSi" 127.0.0.1:6379> SUNIONSTORE user5 user user1 (integer) 3 127.0.0.1:6379> SMEMBERS user5 1) "qikk" 2) "zhangSan" 3) "liSi"
SortedSet(ZSet) 类型 (不允许存在重复的数据,同时还可以通过分数排序)1.ZADD key score member [[score member] [score member] ...] 添加一个有序集合元素 127.0.0.1:6379> ZADD user 80 qikk (integer) 12.ZCARD users 计算总数 127.0.0.1:6379> ZCARD user (integer) 23.ZCOUNT key min max 计算min和max之间的元素 127.0.0.1:6379> ZCOUNT user 80 100 (integer) 24.ZINCRBY key increment member 给某个特定元素加分 (元素不存在则添加元素) 127.0.0.1:6379> ZINCRBY user 10 zhangSan "90"5.ZRANGE key start stop [WITHSCORES]返回一个范围内的元素 使用withscore 显示分数 127.0.0.1:6379> ZRANGE user 0 -1 1) "liSi" 2) "qikk" 3) "zhangSan" 127.0.0.1:6379> ZRANGE user 0 -1 withscores 1) "liSi" 2) "10" 3) "qikk" 4) "80" 5) "zhangSan" 6) "90"6.ZREVRANGE key start stop [WITHSCORES] 按分数从大到小显示元素 127.0.0.1:6379> ZREVRANGE user 0 -1 1) "zhangSan" 2) "qikk" 3) "liSi" 127.0.0.1:6379> ZREVRANGE user 0 -1 withscores 1) "zhangSan" 2) "90" 3) "qikk" 4) "80" 5) "liSi" 6) "10"7.ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 分值分页查询 127.0.0.1:6379> ZRANGEBYSCORE user 0 100 1) "liSi" 2) "qikk" 3) "zhangSan" 127.0.0.1:6379> ZRANGEBYSCORE user 0 100 LIMIT 0 1 1) "liSi" 127.0.0.1:6379> ZRANGEBYSCORE user 0 100 WITHSCORES LIMIT 0 1 1) "liSi" 2) "10"8.ZRANK key member 返回按照分数排名位置 127.0.0.1:6379> ZRANK user qikk (integer) 1 127.0.0.1:6379> ZRANK user zhangSan (integer) 29.ZREVRANK key member 倒序排名位置 127.0.0.1:6379> ZRANK user zhangSan (integer) 2 127.0.0.1:6379> ZREVRANK user zhangSan (integer) 010.ZREM key member [member ...] 删除元素 127.0.0.1:6379> ZRANGE user 0 -1 1) "liSi" 2) "qikk" 3) "zhangSan" 127.0.0.1:6379> ZREM user zhangSan (integer) 1 127.0.0.1:6379> ZRANGE user 0 -1 1) "liSi" 2) "qikk"11.ZREMRANGEBYRANK key start stop 根据排名删除数据 127.0.0.1:6379> ZRANGE user 0 -1 1) "liSi" 2) "zhangSan" 3) "wangWu" 4) "zhaoLiu" 5) "qikk" 127.0.0.1:6379> ZREMRANGEBYRANK user 0 1 (integer) 2 127.0.0.1:6379> ZRANGE user 0 -1 1) "wangWu" 2) "zhaoLiu" 3) "qikk"12.ZREMRANGEBYSCORE key min max 根据分数删除元素 127.0.0.1:6379> ZRANGE user 0 -1 WITHSCORES 1) "liSi" 2) "30" 3) "wangWu" 4) "60" 5) "zhaoLiu" 6) "70" 7) "qikk" 8) "80" 9) "zhangSan" 10) "80" 127.0.0.1:6379> ZREMRANGEBYSCORE user 10 50 (integer) 1 127.0.0.1:6379> ZRANGE user 0 -1 WITHSCORES 1) "wangWu" 2) "60" 3) "zhaoLiu" 4) "70" 5) "qikk" 6) "80" 7) "zhangSan" 8) "80"13.ZSCAN key cursor [MATCH pattern] [COUNT count] 扫描 127.0.0.1:6379> ZSCAN user 0 MATCH zh* 1) "0" 2) 1) "zhaoLiu" 2) "70" 3) "zhangSan" 4) "80"14.ZSCORE key member 获取分数 127.0.0.1:6379> ZSCORE user qikk "80"15.ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] 合并 127.0.0.1:6379> ZRANGE user 0 -1 WITHSCORES 1) "wangWu" 2) "60" 3) "zhaoLiu" 4) "70" 5) "qikk" 6) "80" 7) "zhangSan" 8) "80" 127.0.0.1:6379> ZRANGE user1 0 -1 WITHSCORES 1) "xiaohei" 2) "40" 3) "xiaobai" 4) "50" 5) "xiaohuang" 6) "60" 127.0.0.1:6379> ZUNIONSTORE users 2 user user1 WEIGHTS 1 1 AGGREGATE SUM (integer) 7 127.0.0.1:6379> ZRANGE users 0 -1 WITHSCORES 1) "xiaohei" 2) "40" 3) "xiaobai" 4) "50" 5) "wangWu" 6) "60" 7) "xiaohuang" 8) "60" 9) "zhaoLiu" 10) "70" 11) "qikk" 12) "80" 13) "zhangSan" 14) "80"
Hash 类型1.HSET key field value 设置一个K-V对 field是key 127.0.0.1:6379> HSET user users qikk (integer) 12.HGET key field 获得一个key对应的value 127.0.0.1:6379> HGET user users "qikk"3.HGETALL key 获得所有k-v 127.0.0.1:6379> HGETALL user 1) "users" 2) "qikk"4.HDEL key field [field ...] 删除某一个k-v对 127.0.0.1:6379> HDEL user users (integer) 15.HEXISTS key field 判断一个key是否存在 127.0.0.1:6379> HEXISTS user users (integer) 0 127.0.0.1:6379> HEXISTS user zs (integer) 16.HKEYS key 获得所有key 127.0.0.1:6379> HKEYS user 1) "zs" 2) "qkk" 3) "ls"7.HVALS key 获得所有value 127.0.0.1:6379> HVALS user 1) "zhangSan" 2) "qikk" 3) "liSi"8.HMSET key field value [field value ...] 设置多个key/value 127.0.0.1:6379> HMSET user ww wangWu zl zhaoLiu OK9.HMGET key field [field ...] 获得多个key的value 127.0.0.1:6379> HMGET user ww zl 1) "wangWu" 2) "zhaoLiu"10.HSETNX key field value 设置一个不存在的key的值,key存在不做任何改变** 127.0.0.1:6379> HSETNX user xh xiaoHei (integer) 1 127.0.0.1:6379> HSETNX user xh xiaoHei (integer) 011.HINCRBY key field increment 为value进行加法运算 127.0.0.1:6379> HINCRBY user age 10 (integer) 2012.HINCRBYFLOAT key field increment 为value加上浮点数 127.0.0.1:6379> HINCRBYFLOAT user age 0.00 "20" 127.0.0.1:6379> HINCRBYFLOAT user age 0.9 "20.9" 127.0.0.1:6379> HINCRBYFLOAT user age 0.99 "21.89"
相关文章推荐
- Redis学习笔记(1) Redis windows下环境搭建
- 一 redis学习笔记之环境搭建
- redis学习笔记一之环境搭建
- 一、redis学习笔记之环境搭建
- 一 redis学习笔记之环境搭建
- redis学习笔记一之环境搭建
- 学习笔记1:Redis环境搭建[centos 5]
- 黑马程序员_学习笔记第1天—java环境搭建和dos基本命令
- redis 学习笔记之环境搭建
- 学习笔记系列之Redis | 第一章 Redis简介与环境搭建
- 一 redis学习笔记之环境搭建
- Redis学习——环境搭建以及基础命令使用
- Redis的安装和环境的搭建并设置服务(Redis学习笔记一)
- spring2.5.6学习笔记三:搭建与测试Spring的开发环境
- php学习笔记(1)- 环境搭建
- 学习笔记----编译搭建lnmp环境
- Silverlight3学习笔记1(环境搭建)
- JBPM学习笔记一(环境搭建)
- Spring.NET学习笔记2--环境搭建(基础篇)
- struts 学习笔记(一)--搭建环境