一、下载
windows版本:https://github.com/tporadowski/redis/releases
二、redis常见数据类型
1、String
a、常见命令:
设置键
set key value [ex seconds] [px milliseconds] [nx|xx]
- ex seconds:为键设置秒级过期时间。
- px milliseconds:为键设置毫秒级过期时间。
- nx:键必须不存在,才可以设置成功,用于添加。
- xx:与nx相反,键必须存在,才可以设置成功,用于更新
批量设置键
mset key value [key value ...]
批量获取值
mget key [key ...]
字符串长度
strlen key
计数
incr key
b、实操:
c、应用场景:
- 点赞、点踩
- setnx实现分布式锁
2、hash
a、常见命令
计算field个数
hlen key
获取所有的field-value
hgetall key
判断field是否存在
hexists key field
b、实操
c、应用场景:
对象的存取
3、list
a、常见命令
从左边插入元素
lpush key value [value ...]
获取指定范围内的列表
lrange key start end
从列表右侧弹出
rpop key
b、实操
lpush+rpop=Stack(栈)
lpush+rpop=Queue(队列)
lpush+brpop=Message Queue(消息队列)
c、应用场景
- 抽奖,奖品编号用栈存储
- 消息队列
- 消息排行
4、set
a、常见命令
添加元素
sadd key element [element ...]
计算元素个数
scard key
获取所有元素
获取所有元素
求多个集合的交集、并集、差集
b、实操
c、应用场景
- 共同好友、共同爱好
- 利用唯一性,可以统计访问网站的所有独立 IP
- 好友推荐的时候,根据 tag 求交集,大于某个 threshold 就可以推荐
5、zset
a、常见命令
添加成员
zadd key score member [score member ...]
返回指定排名范围的成员
zrange key start end [withscores]
zrevrange key start end [withscores]
zrange是升序,zrevrange降序
b、实操
c、应用场景
排行榜
应用场景还可以参考这篇文章