redis的五种数据类型
redis客户端建立
./redis-cli -h 192.168.1.22 -p 6380 --raw
1.String
应用场景:
统计网站访问数量、当前在线人数、微博数、粉丝数等,全局递增ID等 。
常用命令:
SET key value
GET key
MSET key1 value1 [key2 value2]
MGET key1 key2
INCR key
DECR key
SETNX key value #只有key 不存在时,才设置key的值
2.Hash
应用场景
保存用户的详细信息。用ID作为key,value则用一组field-value的形式保存。
常用命令 (H)
HSET key field value
HGET key field
HGETALL key
HMSET key field1 value1 [field2 value2]
HMGET key field1 [filed2]
3.List
应用场景
获取最新的评论列表,获取最后登录10个用户,获取最近7天的活跃用户数等。
常用命令(L/R)
LPUSH key value1 [value2] #将一个或多个值插入到列表头部
LPOP key #移出并获取列表的第一个元素
RPUSH key value1 [value2] #在列表尾部添加一个或多个值
RPOP key #移除并获取列表最后一个元素
LREM key count value #移除列表元素
LRANGE key start stop #获取列表指定范围内的元素
4.Set
应用场景
a.利用唯一性,可以存取当天的活跃用户列表。
b.利用集合操作,可以取不同兴趣圈子的交集,可以取当天的新增用户等。
常用命令(S)
SADD key member1 [member2] #向集合添加一个或多个成员
SDIFF key1 [key2] #返回给定所有集合的差集
SINTER key1 [key2] #返回给定所有集合的交集
SUNION key1 [key2] #返回所有给定集合的并集
SISMEMBER key member #判断 member 元素是否是集合 key 的成员
SMEMBERS key #返回集合中的所有成员
SREM key member1 [member2] # 移除集合中一个或多个成员
5.Sorted Set
应用场景
销量排名,积分排名,时间线等
常用命令
ZADD key score1 member1 [score2 member2] #向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZINCRBY key increment member #有序集合中对指定成员的分数加上增量 increment
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] #通过分数范围返回有序集合指定区间内的成员
ZINTERSTORE destination numkeys key [key …] #计算给定的一个或多个有序集的交集,并将结果集存储在新的有序集合 key 中
ZUNIONSTORE destination numkeys key [key …] #计算给定的一个或多个有序集的并集,并存储在新的 key 中