string - > key value 简单的keyvalue,常规计数:例如微博数,粉丝数
set -> key value1 value2... 去重,所以保存用户的所有关注,粉丝。通过交集并集差集,可以实现共同关注,共同爱好等
sortedset -> key score1 value1 score2 value2 排行榜,代权重的消息队列
hash -> map [key1,value1 key2,value2...] 存对象,例如用户信息
list -> 队列key value1 ..value2...value3.. 做分布式消息队列,最新消息排行
1.String 类型
重复会覆盖之前的key值
一个字符类型的key默认存储最大容量是512M
set key value
get key
getrange key start end
getset key value
setex key second value
psetex key milliseconds value
setnx key value
strlen key
incr key
incrby key increment
incrbyfloat key increment
decr num
decrby num decrement
append key value
del key
mget key1[key2]
mset key value[key value]
2.hash类型
字段名重复会覆盖之前的field的值
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)
适合存储对象
person:
name:zhangsan
age:18
sex:男
hset key field value
hget key field
hgetall key
hexists key field
hdel key field
hincrby key field increment
hincrbyfloat key field increment
hkeys key
hlen key
hvals key
hsetnx key field value
3.list类型
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
允许重复元素
可以实现分部式消息队列
lpush key value
rpush key value
lrange key start stop
lpushx key value
rpushx key value
lpop key
rpop key
llen key
blpop key timeout
brpop key timeout
4.set类型
Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
sadd key value[value...]
scard key
sdiff key1 [key2]
sdiffstore destination key1[key2]
smembers key
sinter key1 [key2]
sinter destination key1 [key2]
sunion key1[key2]
sunionstore destination key1[key2]
sismember key value
spop key count
.
srandmember key count
srem key value[value]
5.sortedSet类型
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)
zadd key score1 member1[score2 member2]
zcard key
zrange key start end withscores
zcount key min max
zscore key value
zrem key value
6.key 通用命令
keys *
type key
del key
rename key newkey
exists key
expire key seconds
ttl key
pttl key
persist
move key bd
发布订阅
publish channal message
subscribe channel [...]