Redis
Michaeles
这个作者很懒,什么都没留下…
展开
-
redis集群密码设置
1、密码设置(推荐)方式一:修改所有Redis集群中的redis.conf文件加入:masterauth passwd123 requirepass passwd123 说明:这种方式需要重新启动各节点方式二:进入各个实例进行设置:./redis-cli -c -p 7000 config set masterauth passwd123 config set requ...原创 2018-11-29 14:52:26 · 298 阅读 · 0 评论 -
Redis哨兵基本概念
1.Sentinel(哨兵)是Redis 的高可用性解决方案。通过一个或多个Sentinel 实例组成的Sentinel 系统可以监视多个主服务器和下属的所有从服务器,当主服务器进入下线状态时,自动将主服务器下的从服务器升级为新的主服务器。2.比如:server1下线,会升级server2位新的主服务器3.sentinel哨兵的作用(1)Master 状态监测,如果Master...原创 2018-12-29 17:47:30 · 3448 阅读 · 0 评论 -
Redis常用配置文件
#Redis服务器集群,以空格分开redis.servers=127.0.0.1:26380 127.0.0.1:26380 127.0.0.1:26380#Redis master集群,与sentinel中配置的名称相同,以空格分开redis.masters=master-6380 master-6381 master-6382#Redis访问密码redis.password=123...原创 2018-12-29 17:21:41 · 284 阅读 · 0 评论 -
Redis分布式锁的实现
一、Redis分布式锁1.要满足的几个条件(1)互斥性。在任意时刻,只有一个客户端能持有锁。(2)不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。(3)具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。(4)解铃还须系铃人。加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解了。2.实现原理(基于单...原创 2018-12-29 11:30:50 · 197 阅读 · 0 评论 -
缓存雪崩、缓存穿透、缓存击穿
一、缓存击穿(针对某一key缓存)1.概念针对于一些设置了过期时间的key,当缓存key在某个时间点过期,恰好此时有大量的并发请求进来,发现缓存过期时,就会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。2.使用互斥锁(mutex key)简单地来说,就是在缓存失效的时候(判断拿出来的值为空),不是立即去load db。比如Redis使用SETNX去s...原创 2018-12-28 20:54:07 · 353 阅读 · 0 评论 -
Redis过期策略、内存淘汰策略、持久化策略
一、持久化策略1.基本概念 Redis的数据是存在内存中的,若redis宕机,数据就会全部丢失(1)RDB快照,是一次全量备份,快照是内存数据的二进制序列化形式,存储上非常紧凑;(2)AOF日志,是连续的增量备份,AOF日志记录的是内存数据修改的指令记录文本,当数据库重启时要加载AOF日志进行指令重放,所以需要定期进行AOF重写,对日志进行瘦身。2.怎么进行备份的(1)RD...原创 2018-12-28 20:43:30 · 2135 阅读 · 0 评论 -
Redis的应用场景
一、基本概念redis作为键值对数据库,常用的5种数据类型为字符串类型string,散列类型hash,列表类型list,集合类型set、有序集合类型zset。二、redis的应用场景1.分布式锁(实现是基于setnx和给一个超时时间(防止释放锁失败)) 基于 数据库的乐观锁 基于Redis的分布式锁 基于ZooKeeper的分布式锁 2.计数器(浏览次数)...原创 2018-12-28 19:44:36 · 239 阅读 · 0 评论 -
Mybatis整合redis实现分布式的二级缓存
1.mybtais缓存机制 2.Mybatis二级缓存实现原理(1)mybatis的二级缓存主要在Executor对象上进行操作,当mybatis发现在mybatis.xml配置文件中设置了cacheEnabled=true时,mybatis在创建sqlsession时创建Executor对象,同时会对Executor加上装饰者【CacheExecutor】。(2)Ca...原创 2018-12-08 15:32:02 · 710 阅读 · 0 评论 -
tomcta加入redis分布式session报错记录
1.在tomcat 配置文件context.xml中添加<Loader delegate="true" />即可十二月 08, 2018 10:49:59 上午 org.apache.tomcat.util.digester.Digester endElement严重: End event threw exceptionjava.lang.NoSuchMethodExcept...原创 2018-12-08 10:58:28 · 228 阅读 · 1 评论 -
Redis在高并发下常见的错误场景
在使用Redis场景下,很多同学在使用中不注意,一旦系统并发比较高的时候,往往请求还是直接打到数据库,并没有击中缓存。下面我说几种场景,已经解决方案。第一种,看看自己是否已经入坑了。//判断Redis缓存是否有数据if(!jedis.exists("testlockListV_1")){System.out.println("多线程情况下多次击穿缓存,直接访问数据库");Str...转载 2019-04-20 10:44:56 · 1912 阅读 · 1 评论