redis是一个key-value存储系统,可以用在如下场景,1,2,5用得较多
1、缓存
热点数据(经常会被查询,但是不经常被修改或者删除的数据),首选是使用redis缓存。 (推荐学习:Redis视频教程)
2、计数器
单线程避免并发问题,高性能,如减库存。
3、队列
相当于消息系统,ActiveMQ,RocketMQ等工具类似,但是个人觉得简单用一下还行,如果对于数据一致性要求高的话还是用RocketMQ等专业系统。
4、位操作
使用setbit、getbit、bitcount命令,如统计用户签到,去重登录次数统计,某用户是否在线状态等;
redis内构建一个足够长的数组,每个数组元素只能是0和1两个值,然后这个数组的下标index用来表示我们上面例子里面的用户id(必须是数字哈),那么很显然,这个几亿长的大数组就能通过下标和元素值(0和1)来构建一个记忆系统,上面我说的几个场景也就能够实现。用到的命令是:setbit、getbit、bitcount
5、分布式锁与单线程
验证前端的重复请求(可以自由扩展类似情况),可以通过redis进行过滤:每次请求将request Ip、参数、接口等hash作为key存储redis(幂等性请求),设置多长时间有效期,然后下次请求过来的时候先在redis中检索有没有这个key,进而验证是不是一定时间内过来的重复提交。
秒杀系统,基于redis是单线程特征,防止出现数据库“爆破”
6、最新列表
redis的 LPUSH命令构建List。
7、排行榜
谁得分高谁排名往上。命令:ZADD(有序集,sorted set)。
更多Redis相关技术文章,请访问Redis入门教程栏目进行学习!
Atas ialah kandungan terperinci redis一般在哪里使用. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!