hash
其内部结构符合对象形式
>hset key field value
hset user:1 username petter
hset user:1 age 12
获取所有参数与结果
127.0.0.1:6379> hgetall user:1
1) "username"
2) "petter"
3) "age"
4) "13"
获取所有key
127.0.0.1:6379> hkeys user:1
1) "username"
2) "age"
获取所有值
127.0.0.1:6379> hvals user:1
1) "petter"
2) "13"
命令 | 复杂度 |
---|---|
hget hset hdel | o(1) |
hexists | o(1) |
hincrby | o(1) |
hgetall hvals hkeys | o(n) |
hmget hmset | o(n) |
list
是一种有序可重复结构链表
增
rpush 从右侧插入 rpush key value1...value n
lpush 从左侧插入 lpush key value1...value n
>127.0.0.1:6379> rpush number a b c
(integer) 3
127.0.0.1:6379> lrange number 0 -1
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> lpush number1 a b c
(integer) 3
127.0.0.1:6379> lrange number1 0 -1
1) "c"
2) "b"
3) "a"
linsert key before/after value newvalue 在一个值前/后插入新值
linsert number before a java 在a前面插入java
lpush rpush 左弹出值 右弹出值
删
删除:lrem lrem key count value 删除在这个key列表中的值 (count 多少个相同的)
count=0 删除所有 值是value的
count>0 从左往右删除
count<0 从右往左删除
保留部分: ltrim key start end 按照索引要求修改列表 (保留 i -> j 位范围内的值)
ltrim number 1 2
a b c 中 a被去除 保留 b c
此功能用于大型redis列表删除性能优秀
改
lset key index newValue 设置列表指定索引值为newValue o(n)
查
lrange key start end (包含end) 获取列表指定索引范围内所有的item
>lrange number 0 1
a b
查询范围当结尾
lrange number 1 -1
b c
lindex key index 查询对应数值 o(n)
llen 查询长度 o(1)
使用范围
功能用于时间轴 更新微博直接置顶显示
set
无序不可重复的数据结构
增
sadd key element 向集合key中添加element (如果element存在则添加失败) o(1)
删
srem key element 将集合key中的element移除 o(1)
查
smembers 小心使用 显示所有时会造成阻塞并且显示结果无序
sdiff 差集 sinter 交集 sunion 并集
sdiff number:1 number:2 store destkey 将交集结果保存在destkey中
用途
抽奖系统 获取 然后随机弹出 spop
共同关注 集合间操作
zset
有序集合:具有分数可以排序。
增
zadd key score element (可以是多对)o(logN)
zincrby key increScore element
>zincrby user:1 9 age 年龄增加九岁
删
zrem key element (可以是多个)
zremrangebyrank key start end 删除指定排名内的升序元素
zremrangebyscore key minScore maxScore 删除指定分数内的升序元素
查
zscore key element 返回元素的分数
zcard key 返回元素个数
zrange key start end [withscores] 返回指定索引范围内的升序元素[分值]
zrangebyscore key minScore maxScore [withscores] 返回指定分数范围内的升序元素[分值]
zcount key minScore maxScore 返回有序集合内在指定分数范围内的个数
用于排行榜