Redis是一款免费开源的遵守BSD协议,是高性能的NOsql 缓存 Key-value数据库。Redis支持数据持久化,可以在将内存中的数据保持在词牌当中,重启后还可以再次加载进行使用,Redis支持简单的Key-valus类型数据,同时还提供了list set zset hash等数据结构的存储,同时还支持数据备份,即主从复制。
Redis的经典应用场景:
1.缓存热点数据:热点数据(经常会被查询,但不是进场被修改或者删除的数据),首选是使用redis缓存,redis的性能非常优越。
2.计数器:诸如统计点击数,访问数,点赞数,评论数,浏览数等应用,由于单线程,避免了并发问题,保证数据的正确性,并且100%毫秒级性能,同时开启Redis持久化,以便于持久化数据。
3.单线程机制:验证前段的重复请求,可以自由扩展类似情况。可以通过redis进行过滤,比如,每次请求将request IP,参数,接口等hash作为key存储redis,设置多长时间有效期,然后下次请求过来的时候现在redis中检索有没有这个Key,进而验证是不是一定时间内过来的重复提交,在比如,限制用户登录次数,不如一天错误登录的次数不能高于多少个。秒杀系统,基于redis是单线程特征,防止出现数据库超卖,全局增量ID生成等,
4.排行榜:谁的分高谁的排名就靠前,比如点击率高,活跃度高,销售数量最高,投票最高的前10名排行等等。
5.分布式锁:使用redis可以实现分布式锁,为了确保分布式锁可用,至少确保锁的实现同时满足一下几个条件:互斥性在任何时刻,只有一个客户端能持有锁。不会发生死锁,即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户等能加锁,局域容错性,只能在大部分的Redis节点正常运行,客户就可以加锁和解锁。加锁和解锁必须是同一个客户端,客户端不能解他人加的锁。
6.:使用Redis的进行会话缓存是非常常见的一种场景,用Redis缓存会话比其他存储的优势在于:Redis提供持久化,目前大量方案都采用了redis作为Session的存储方案。
版权归属:转载请保留作者链接:irzhd.com