<del id="d9rz1"></del>

<cite id="d9rz1"></cite>
<b id="d9rz1"><em id="d9rz1"><cite id="d9rz1"></cite></em></b>

<b id="d9rz1"></b>

<output id="d9rz1"></output>

    <b id="d9rz1"></b><menuitem id="d9rz1"><span id="d9rz1"></span></menuitem><ins id="d9rz1"></ins>

      Redis缓存技术及应用场景案例


          Remote Dictionary Server(Redis) 是一个开源的由Salvatore Sanfilippo使用ANSI C语言开发的key-value数据存储服务器。其值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型,所以它通常也被称为数据结构服务器。

      blob.png

      Redis特点

      redis足够简单和稳定

      支持丰富的数据结构

      内存存储读写性能优秀

      提供持久化的支持

      支持事务操作

      提供主从复制功能

      Redis与memcache性能压力测试比较

      blob.png

      Redis的典型应用场景:

      一:缓存热点数据

      热点数据(经?;岜徊檠?,但是不经常被修改或者删除的数据),首选是使用redis缓存,redis的性能非常优秀。

      二:计数器

      诸如统计点击数、访问数、点赞数、评论数、浏览数等应用,由于单线程,可以避免并发问题,保证数据的正确性,并且100%毫秒级性能,同时开启Redis持久化,以便于持久化数据。

      三:单线程机制

      验证前端的重复请求,可以自由扩展类似情况),可以通过redis进行过滤,比如,每次请求将Request IP、参数、接口等hash作为key存储redis(幂等性请求),设置多长时间有效期,然后下次请求过来的时候先在redis中检索有没有这个key,进而验证是不是一定时间内过来的重复提交;再比如,限制用户登录的次数,比如一天错误登录次数10次等。

      秒杀系统,基于redis是单线程特征,防止出现数据库超卖;

      全局增量ID生成等;

      四:排行榜

      谁得分高谁排名在前,比如点击率最高、活跃度最高、销售数量最高、投票最高的前10名排行等等;

      五:分布式锁

      使用redis可以实现分布式锁,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:

      互斥性,在任意时刻,只有一个客户端能持有锁。

      不会发生死锁,即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。

      具有容错性,只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。

      解铃还须系铃人,加锁和解锁必须是同一个客户端,客户端不能解他人加的锁。

      六:Session存储

      使用Redis的进行会话缓存(session cache)是非常常见的一种场景。用Redis缓存会话比其他存储(如Memcached)的优势在于:Redis提供持久化,目前大量的方案均采用了redis作为session的存储方案。

      高薪课程推荐:不得不精Redis

      上一篇:参加动力节点Java培训走向高薪之路
      下一篇:MySQL数据库从复制及企业配置实践

      开班信息

      白小姐心水网