redis
爱吃血肠
本人是个小小程序员,此博客一是为了激励自己学习,二是记录自己的学习历程,以方便及时回顾相关知识。
展开
-
redis快速入门
redis快速入门是什么?是完全开源免费的,用c语言编写的,是一个单线程,高性能的(key/value)内存数据库,基于内存运行并支持持久化的nosql数据库能干嘛?主要是用来做缓存,但不仅仅只能做缓存,比如:redis的计数器生成分布式唯一主键,redis实现分布式锁,队列,会话缓存。去哪下?官网,也可以通过Linux yum直接下载安装怎么玩?1.安装2.redis数据类型(api操作)3.redis配置文件解析4.redis的持久化5.redis的事务6.redis的发布订阅7.java客原创 2020-07-22 17:26:12 · 5947 阅读 · 0 评论 -
redis事务
redis事务什么是redis的事务?redis事务就是一个命令执行的队列,将一系列预定义命令包装成一个整体,就是一个队列。当执行的时候,一次性按照添加顺序依次执行,中间不会被打断或者干扰。能干嘛?一个队列中,一次性,顺序性,排他性的执行一系列命令redis事务基本操作开启事务:multi 设置事务的开始位置,这个指令开启后,后面所有的指令都会加入事务中执行事务: exec 设置事务的结束位置,同时执行事务,与multi成对出现,成对使用取消事务:di原创 2020-07-22 17:23:00 · 5904 阅读 · 0 评论 -
redis发布订阅
publish: 发布消息 语法:publish channel名称 “消息内存” subscribe: 订阅消息 语法:subscribe channel名称 subscribe: 使用通配符订阅消息 语法: pubscribe channel*名称 punsubscribe: 使用通配符退订消息。语法:punsubscribe channel*名称 unsubscribe : 退订消息 语法:unsubscribe channel名称 ...原创 2020-07-22 17:21:19 · 5920 阅读 · 0 评论 -
删除策略
定时删除–>以CPU内存换redis内存 惰性删除–>以redis内存换CPU内存 定期删除 redis使用:惰性删除+定期删除 redis在启动的时候读取配置文件hz的值,默认为10 每秒执行hz次serverCron()–>databasesCron()—>actveEXpireCyle() actveEXpireCyle()对每个expires[*]进行逐一检测,每次执行250ms/hz 对某个expires[*]检测时,随机挑选N个key检查 如果key超时,原创 2020-07-22 17:20:12 · 6047 阅读 · 0 评论 -
逐出算法
相关配置: maxmemory: 最大可使用内存,占用物理内存的比例,默认值为0,,表示不限制。生产环境一般根据需求设置,通常50%以上 maxmemory-policy: 达到最大内存后,对挑选出来的数据进行删除策略 maxmemory-samples: 每次选取待删除数据的个数,选取数据时并不会全库扫描,采用随机获取数据的方式作为待检测删除数据 ...原创 2020-07-22 17:17:22 · 5939 阅读 · 0 评论 -
redis的持久化机制
redis的持久化机制说白了,就是在指定的时间间隔内,将内存当中的数据集快照写入磁盘,它恢复时是将快照文件直接读到内存什么意思呢?我们都知道,内存当中的数据,如果我们一断电,那么数据必然会丢失,但是玩过redis的同学应该都知道,我们一关机之后再启动的时候数据是还在的,所以它必然是在redis启动的时候重新去加载了持久化的文件redis提供两种方式进行持久化,一种是RDB持久化默认,另外一种是AOF(append only file)持久化。1.RDB是什么?原理是redis会单独创建(fork)一个与当前原创 2020-07-22 17:01:34 · 5994 阅读 · 0 评论 -
Redis主从复制
Redis主从复制1.是什么1.单机有什么问题:单机故障容量瓶颈qps瓶颈主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,mester已写为主,slaver已读为主2.能干嘛1.读写分离2.容灾备份3.怎么玩玩法原则:1.配从不配主2.使用命令 SLAVEOF 动态指定主从关系 ,如果设置了密码,关联后使用 config set masterauth 密码3.配置文件和命令混合使用时,如果混合使用,动态指定了主从,请注意一定要修改对应的配置文件1.新建redis80原创 2020-07-22 16:53:36 · 5938 阅读 · 0 评论 -
redis哨兵模式
1.是什么,能干嘛? 在Redis 2.8版本开始引入。哨兵的核心功能是主节点的自动故障转移。 通俗来讲哨兵模式的出现是就是为了解决我们主从复制模式中需要我们人为操作的东西变为自动版,并且它比人为要更及时 2.哨兵主要功能(做了哪些事) 监控(Monitoring):哨兵会不断地检查主节点和从节点是否运作正常。 自动故障转移(Automatic Failover):当主节点不能正常工作时,哨兵会开始自动故障转移操作,它会将失效主节点的其中一个从节点升级为新的主节点,并让其他从节点改为复制新的主节点。原创 2020-07-22 16:37:16 · 6200 阅读 · 0 评论 -
redis cluster高可用集群
redis cluster高可用集群1.redis cluster集群是什么?redis cluster集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。Redis cluster集群不需要sentinel哨兵也能完成节点移除和故障转移的功能。需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到1000节点。redis cluster集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单2.redis cluster集群搭建/u原创 2020-07-20 16:40:55 · 6058 阅读 · 0 评论 -
redis集群演变过程
1.单机版 核心技术:持久化 持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。 2.主从复制 复制是高可用Redis的基础,哨兵和集群都是在复制基础上实现高可用的。复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。缺陷是故障恢复无法自动化;写操作无法负载均衡;存储能力受到单机的限制。 3.哨兵 在复制的基础上,哨兵实现了自动化的故障恢复。缺陷是写操作无法负载均衡;存储能力受到单机的限制。 4.集群 通过集原创 2020-07-17 17:22:44 · 5983 阅读 · 0 评论 -
redis数据结构扩展
GEOGEOADD locations 116.419217 39.921133 beijinGEOPOS locations beijinGEODIST locations tianjin beijin km 计算距离GEORADIUSBYMEMBER locations beijin 150 km 通过距离计算城市注意:没有删除命令 它的本质是zset (type locations)所以可以使用zrem key member 删除元素zrange ke原创 2020-07-09 15:08:14 · 6074 阅读 · 0 评论 -
缓存几大问题
缓存几大问题1.缓存粒度控制通俗来讲,缓存粒度问题就是我们在使用缓存时,是将所有数据缓存还是缓存部分数据? 数据类型通用性空间占用(内存空间+网络码率)代码维护全部数据高大简单部分数据低小较为复杂 缓存粒度问题是一个容易被忽视的问题,如果使用不当,可能会造成很多无用空间的浪费,可能会造成网络带宽的浪费,可能会造成代码通用性较差等情况,必须学会综合数据通用性、空间占用比、代码维护性 三点评估取舍因素权衡使用。2.缓存穿透问题缓存穿透是指查询一个一定不原创 2020-07-09 14:07:39 · 5840 阅读 · 0 评论