
redis
f7anty
这个作者很懒,什么都没留下…
展开
-
RedisTemplate用SETNX命令实现分布式锁
使用SETNX命令获取分布式锁的步骤: C1和C2线程同时检查时间戳获取锁,执行SETNX命令并都返回0,此时锁仍被C3持有,并且C3已经崩溃 C1DEL锁 C1 使用SETNX命令获取锁,并且成功 C2DEL锁 C2 使用SETNX命令获取锁,并且成功 ERROR: 由于竞态条件,C1和C2都获取到了锁 幸运的是,以下面的步骤完全可以避免这种情况发生,看看C4线程如何操作 C4使用SETNX命令获取锁 C3已经崩溃但是仍然持有锁,所以Redis返回0给C4 C4使用GET命令获取锁...转载 2020-08-02 13:35:53 · 977 阅读 · 2 评论 -
Redis IO多路复用技术
转:https://www.cnblogs.com/syyong/p/6231326.html Redis采用的是基于内存的采用的是单进程单线程模型的KV数据库,由C语言编写。官方提供的数据是可以达到100000+的qps。这个数据不比采用单进程多线程的同样基于内存的KV数据库Memcached差。 Redis快的主要原因是: 完全基于内存 数据结构简单,对数据操作也简单 使用多路 I/...转载 2020-03-03 20:36:52 · 611 阅读 · 0 评论 -
缓存穿透、缓存击穿、缓存雪崩区别和解决方案
一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。 二、缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导...转载 2020-03-03 20:10:28 · 172 阅读 · 0 评论 -
Redis实现访问频率限制
Method 1通过key记录IP:rate.limiting:$IP,同时初始时设置期限为60秒,如果超时则重新设置,否则进行判断,当一分钟内访问超过100次,则禁止访问。$isKeyExists = rate.limiting:$IP if ($isKeyExists == 1) { $times = INCR rate.limiting:$IP if ($times > 100...转载 2018-04-16 20:24:52 · 904 阅读 · 0 评论 -
Centos开机自启动redis
原文链接:http://my.oschina.net/indestiny/blog/197272?p={{page}} 修改redis.conf,打开后台运行选项: [html] view plain copy # By default Redis does not run as a daemon. Use 'yes' if you ne转载 2016-08-28 21:16:22 · 618 阅读 · 0 评论 -
Redis使用总结之与Memcached异同
Redis是什么?两句话可以做下概括: 1. 是一个完全开源免费的key-value内存数据库 2. 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings、map、 list、sets、 sorted sets Redis不是什么?同样从两个方面来做下对比: 1. 不是sql server、mySQL等关系型数据库,主要原因是:转载 2015-08-07 15:28:12 · 480 阅读 · 0 评论 -
ehcache memcache redis 三大缓存男高音
最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存的优缺点,仅供参考! Ehcache 在java项目广泛的使用。它是一个开源的、设计于提高在数据从RDBMS中取出来的高花费、高延迟采取的一种缓存方案。正因为Ehcache具有健壮性(基于java开发)、被认证(具有apache 2.0 license)、充满特色(稍后会详细介绍),所以被用于转载 2015-08-07 15:54:23 · 454 阅读 · 0 评论