一、hash操作
数据结构:key:{k1:v1, k2:v2, k3:v3} 类似Python中的字典
如:info : {name: lina, age: 22, sex: F}
批量设置获取
获取所有keys
获取所有values
查看键值下面的k个数
127.0.0.1:6379> hset info name lina (integer) 1 127.0.0.1:6379> hget info name "lina" 127.0.0.1:6379> hmset info age 22 sex F OK 127.0.0.1:6379> hmget info name age sex 1) "lina" 2) "22" 3) "F" 127.0.0.1:6379> hkeys info 1) "name" 2) "age" 3) "sex" 127.0.0.1:6379> hvals info 1) "lina" 2) "22" 3) "F" 127.0.0.1:6379> hlen info (integer) 3
1.2 hash 下几个常用方法
删除key 下指定键值
判断key 下指定键值是否存在
127.0.0.1:6379> hdel info sex (integer) 1 127.0.0.1:6379> hexists info sex (integer) 0
在hash操作中一个key 能存200亿条数据,如果使用 hmget key 命令,那占用内存,和速度就太慢了
所以使用扫描,类是python 中生成器一样的方式:
127.0.0.1:6379> hscan info 0 match na* count 1 1) "0" 2) 1) "name" 2) "lina"
二、列表操作
- lpush key value1 value2 value3 创建一个列表,并从左往右依次放入数据(FILO) - rpush key value value2 同理上面,右往左放入(FIFO)
127.0.0.1:6379> lpush list 1 2 3 (integer) 3 127.0.0.1:6379> rpush list 1 2 3 (integer) 6 127.0.0.1:6379> lrange list 0 -1 1) "3" 2) "2" 3) "1" 4) "1" 5) "2" 6) "3" 127.0.0.1:6379> llen list (integer) 6
2.2 往列表中插入元素,删除元素等
注意:如果有重复值,以找到的第一个为标杆
(integer) 6 127.0.0.1:6379> linsert list before 1 insert (integer) 7 127.0.0.1:6379> lrange list 0 -1 1) "3" 2) "2" 3) "insert" 4) "1" 5) "1" 6) "2"
修改指定索引的值:
删除指定位置的值:
从列表左边获取一个值返回,并删除它
获取指定索引的值
删除指定范围之外的所有元素
127.0.0.1:6379> lrange list 0 -1 1) "3" 2) "2" 3) "insert" 4) "1" 5) "1" 6) "2" 7) "3" 127.0.0.1:6379> lset list 1 'lina' OK 127.0.0.1:6379> lrem list 2 1 (integer) 2 127.0.0.1:6379> lpop list "3" 127.0.0.1:6379> lrange list 0 -1 1) "lina" 2) "insert" 3) "2" 4) "3" 127.0.0.1:6379> ltrim list 0 1 OK 127.0.0.1:6379> lrange list 0 -1 1) "lina" 2) "insert" 127.0.0.1:6379> lindex list 1 "insert"
2.3 几个不常用的命令,但很厉害
把列表一右边pop 添加到列表2 lpush 左边
左边删除一个数据,如果列表为空,就等待超时时间,在超时时间内,列表中出现了元素理解删除。像队列中的queue一般
三、set集合
创建一个集合:
查看集合中的成员:
返回集合中的元素个数:
差集:
将两个集合中的差集放入第三个集合
交集:
并集:
检查元素是否为集合中成员:
sismember key value
spop key
sscan key cursor match pattern
四、有序集合
zadd key 权重值 member 权重值2 member2 权重值3 member3
zrange key start end 可选参数为 withscores
zcount key min max 统计权重最小到最大
127.0.0.1:6379> zadd zz 1 shiqi 2 zengyue 3 yuan (integer) 3 127.0.0.1:6379> zrange zz 0 -1 1) "shiqi" 2) "zengyue" 3) "yuan" 127.0.0.1:6379> zrange zz 0 -1 withscores 1) "shiqi" 2) "1" 3) "zengyue" 4) "2" 5) "yuan" 127.0.0.1:6379> zcount zz 1 2 (integer) 2
zrank key member 获取成员排名
zrem key member member2 删除指定成员