在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1.1 配置文件还原1.1.1 哨兵的配置文件介绍说明: 哨兵启动时需要依赖2个配置文件 redis.conf sentinel.conf 1.搭建redis时redis必须实现主从结构 并且在配置文件中已经写入. 2.如果主从搭建出现问题.需要重新拷贝新的配置文件 再次配置
3.哨兵配置文件出错 1.先配置单台的哨兵 2.先拷贝单台哨兵的配置文件. 3.根据自己的需要将配置文件修改哨兵的个数/序列号 4.重启哨兵 6379 6380 6381 2 Redis中的持久化2.1 RDB模式说明:RDB模式是redis中默认的持久化方式.redis中默认每15分钟持久化一次.将redis中内存的信息写入到.rdb结尾的文件中.当redis节点出现宕机/断电.当redis再次启动时先读取rdb持久化文件,恢复内存数据. 2.1.1 redis的单位
2.1.2 redis中默认的持久化策略
说明:save 规定的时间 更新的次数(set) save 900 1 如果redis在15分钟内只执行一次set操作.则进行数据持久化. save 300 10 如果redis在5分钟内执行了10次set操作,则进行持久化 save 60 10000 … 总结:根据save的语法,可以根据自身的需要调整redis的默认的持久化策略. 2.1.3 save 和 bgsave说明:如果想通过自己手动的持久化文件,需要执行save或bgsave达到持久化的目的. 用法: 如果使用save命令持久化,则首先会重新开启一个线程,主动执行持久化操作.这时所有的redis操作都会阻塞.直到持久化操作完成. 如果使用bgsave命令.则不会造成阻塞的现象.会新开启一个线程.该线程的工作有点类似于gc.不能保证持久化操作立即执行.
2.1.4 持久化文件的名称和路径1.持久化文件的名称
2.路径可以手动的指定
3.问题:由于redis关机,当再次启动时发现全部的redis信息都相同?老师为什么?????? 说明:由于分片的操作.3台redis的持久化文件名称和路径都是相同的.当redis启动时会读取持久化文件恢复数据,.所有导致3台redis的数据是系统的!!! 总结:不同的redis.持久化文件名称必须不同 2.1.5 RDB持久化的总结
2.2 AOF持久化2.2.1 AOF介绍说明:AOF策略能够满足实时持久化的要求,但是消耗的性能较高(rdb).AOF持久化策略模式是关闭的.如果需要开启只需要将appendonly yes.当开启了AOF持久化策略后,RBD模式将不起作用.并且生成持久化文件appendonly.aof
AOF的执行的原理: 当redis出现宕机或者断电的现象,这时当redis重新启动时.这时会首先检查AOF文件.进行数据的恢复. 2.2.2 AOF文件默认的持久化策略
always: 实时备份.这时的性能会很低 everysec: 每秒进行一次数据持久化.效率略低于rdb no: 将具体备份的时间交给操作系统决定.
2.2.3 AOF的总结
2.3 Redis中的内存策略2.3.1 Redis是如何维护内存说明:redis中可以手动的设置最大的内存,可以用10mb/10gb这样的单位进行设定.如果将内存设定为10M.随着时间的推移,内存空间会面临存满的现象.redis会根据自身的内存策略进行维护
2.3.2 内存策略# volatile-lru -> 从已经设置过期时间的数据中,选择最近最少使用的数据进行删除 # allkeys-lru -> 从全部数据中挑选出最近最少使用的数据进行删除 # volatile-random -> 从已经设定的过期时间的数据中,进行随机淘汰 # allkeys-random -> 从全部数据中进行随机淘汰 # volatile-ttl -> 从设置了过期时间的数据集中,选择马上就要过期的数据进行释放操作 # noeviction -> redis的默认策略.不会删除数据,会直接返回错误信息.在做写操作时
说明:可以修改默认内存策略.建议使用lur算法和TTL算法 如果采用lur算法则使用allkeys-lru
说明:如果引用算法将内存的数据进行删除时,lru
maxmemory-samples 1-10 10的删除的可靠性更好,但是性能是最低的 3的速度是最快的,但是效果不是特别的理想. 默认为5
2.4 搭建redis集群2.4.1 哨兵的缺点1.哨兵宕机后将直接影响整个服务 2.搭建redis服务器,一个服务对应三个哨兵,那么会导致哨兵的数量比服务器都多,维护不易. 2.4.2 哨兵的优点说明: 哨兵可以实现redis的高可用.分片技术可以将内存数据交给多台机器维护.性能上更好. 矛盾点: 哨兵缺少了分片的内存分散. 分片缺少了哨兵的高可用 2.5 Redis集群2.5.1 集群的优点说明:
2.6 Redis集群的搭建2.6.1 创建7000-7008文件夹说明:配置前将全部的redis服务关闭,之后重新拷贝新的配置文件重新配置 mkdir cluster [root@localhost redis-3.2.8]# cp redis.conf cluster/ redis-7000.conf
创建多个文件夹保存redis信息.将配置文件移动到7000文件夹下
2.6.2 编辑配置文件
2.6.3 复制配置文件到指定文件夹下
2.6.4 修改文件标号:%s/7000/7001/g 7000表示原有文件名 7001新文件名称 之后保存退出:wq 分别修改7001-7008的配置文件
2.6.5 批量启动
关闭防火墙 service iptables stop
2.6.6 集群的部署说明:集群启动时需要依赖工具插件 ruby 启动命令:
./src/redis-trib.rb create --replicas 2 192.168.220.132:7000 192.168.220.132:7001 192.168.220.132:7002 192.168.220.132:7003 192.168.220.132:7004 192.168.220.132:7005 192.168.220.132:7006 192.168.220.132:7007 192.168.220.132:7008
输入yes
说明: 如果出现上述的信息恭喜你集群搭建成功!!!
2.7 Redis集群Spring管理2.7.1 修改redis.properties文件
2.7.2 编辑Spring配置文件<!-- jedis 配置--> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig" > <!--最大空闲数--> <property name="maxIdle" value="${redis.maxIdle}" /> <!--最大建立连接等待时间--> <property name="maxWaitMillis" value="${redis.maxWait}" /> <!--是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个--> <property name="testOnBorrow" value="${redis.testOnBorrow}" /> <property name="maxTotal" value="${redis.maxTotal}" /> <property name="minIdle" value="${redis.minIdle}" /> </bean> <bean id="jedisCluster" class="com.jt.common.util.RedisCluster" > <property name="addressConfig"> <value>classpath:/properties/redis.properties</value> </property> <property name="addressKeyPrefix" value="redis.cluster" /> <!-- 属性文件里 key的前缀 --> <property name="timeout" value="${redis.timeout}" /> <property name="maxRedirections" value="6" /> <property name="genericObjectPoolConfig" ref="poolConfig" /> </bean>
2.7.3 编辑工具类方法说明:工具类实现工厂接口和InitializingBean
2.先创建对象
2.7.4 业务层调用
2.7.5 修改哨兵依赖配置
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论