1. String存储
set key value 赋值
get key 取值
del key 删除
incr key 递增
decr key 递减
incrby key number(64位以内) 按数值递增
decr key number 按数值递减
2. hash存储
hset key field value 为指定的key设定field/value(键值对)
例如:hset person username "zhangsan"
hset key field value[field value2] 设置多个键值对
例如:hset person username "zhangsan" password "123"
hget key field 取值
Hmget key field 取多个值
hgetall key 去所有的值
hdel key field[field…] 删除一个或者多个字段
del key 删除整个key
hexist key field 判断指定的key有没有field
hlen key 获取key中field中的数量(只是数量,获取不到值)
hkeys key 获取所有的key
hvals key 获取所有的value
list存储
lpush key value[value1,value2…] 从头部插入value
rpush key value[value1,value2…] 从尾部插入value
lpushx key value 仅在参数中指定的key存在 从头部插入
rpushx key value 仅在参数中指定的key存在 从尾部插入
lrange key start end 获取链表中指定的值从start到end
例如 lrange key 0 -1 获取所有的值
lpop key 弹出头部第一个元素
rpop key 弹出尾部第一个元素
llen key 列表中链表的数量
lset key index value 设置链表的index的脚标的元素值0代表链表的头元素
lrem key count value 删除count个值为value的元素
linsert key before|after pivot value 在pivot元素前或后加入元素
rpoplpush resource destination 将链表中的尾部元素弹出并增加到头部
set类型存储
sadd key value1,value2 … 增加元素
smembers key 获取set中所有的成员
scard key 获取set中成员的数量
sismember key menber 判断参数中指定的成员是否存在,存在1,不存在0
redis应用场景
string 以map形式存储 单个数据
场景:
作为数值时的递增:分表操作
数据时效性设置:某某综艺”,启动海选投票,只能通过微信投票,每个微信号每4个小时只能投1票。
电商商家开启热门商品推荐,热门商品不能一直处于热门期,每种商品热门期维持3天,3天后自动取消热门
高热度数据访问加速:
例如微博大V主页显示粉丝数与微博数量
在Redis中为大V用户设定用户信息,以用户主键和属性值作为key,后台设定时间定时刷新即可。
hash 以一系列存储的数据进行编组,方便管理 底层是哈希表结构实现数据存储
场景:
购物车
hash实现抢购,现时发放优惠卷,激活码
list 存储多个数据,并对数据进入存储空间的顺序进行区分
底层使用双向链表存储结构实现
场景:
朋友圈点赞,要求按照点赞顺序显示点赞好友的信息
如果取消,移除好友信息
最新消息的展示
set 与hash存储结构完全相同,仅存储键,不存储值(nil),并且值式不允许重复的。也就是只有键没有值的hash
场景:
共同好友
随机操作数据
同类型不重复数据的合并
访问量统计去重
黑白名单
zset 跟set一样 可以排序
场景:
会员短时间体验之过期失效
建立排序依据(游戏好友亲密度,各类资源网站top10,聊天室活跃度统计)
计数器
微信会话