Redis学习笔记(二)

2019-12-22  本文已影响0人  dev_winner

redis 常用命令

设置key过期时间的应用场景

1、限时的优惠活动信息;
2、网站数据缓存(对于一些需要定时更新的数据,例如:积分排行榜);
3、手机验证码;
4、限制网站访客访问频率(例如:1分钟最多访问10次)。

key的命名建议

1、key不要太长,尽量不要超过1024字节。因为这不仅消耗内存,也会降低查找的效率;
2、key不要太短,太短可读性会降低;
3、在一个项目中,key最好使用统一的命名模式,间隔用冒号隔开,如user:123:password;
4、key的名称区分大小写

redis数据类型

字符串-string

string类型的应用场景

1、string通常用于保存单个字符串或JSON字符串数据;
2、因为string是二进制安全的,所以完全可以把一个图片文件的内容作为字符串来保存;
3、计数器(常规K-V的缓存应用。常规计数:微博数,粉丝数)

哈希-hash

hash类型的应用场景

存储一个用户信息对象的数据

列表-list

list类型的应用场景

1、对数据量大的集合进行数据删减、列表显示、留言评价、分页、热点新闻(Top5)等;利用lrange还可以很方便地实现分页功能。
2、任务队列:list列表通常用来实现一个消息队列,其可以确保任务被执行的先后顺序,不必像MySQL那样通过order by关键字来排序。常用案例:订单系统的下单流程、用户系统登录注册功能等。

无序不重复集合-set

set类型的应用场景

1、对两个集合间的数据进行交集、并集、差集运算,可以实现如共同关注、共同喜好、二度好友等功能。
2、利用唯一性,可以统计访问网站的所有独立 IP地址。

有序不重复集合-zset(Sorted Set)

zset类型的应用场景

1、典型的实例:排行榜;如twitter的public timeline可以将发表时间作为score来存储,这样获取数据时就是自动按时间排好序的。
2、存储学生考试成绩;
3、可以用做带权重的任务队列,比如普通消息的score为1,重要消息的score为2,然后工作线程可以选择按score的倒序来获取工作任务,让重要的任务先执行。

上一篇下一篇

猜你喜欢

热点阅读