Redis
文章平均质量分 80
过街的老鼠
耽误太多时间,事情可就做不完了。
展开
-
Redis一主二从三哨兵的配置
一主二从的搭建在前面已经介绍过了,请见https://blog.csdn.net/m0_51212267/article/details/123718396?spm=1001.2014.3001.5502搭建完成后:下面来介绍哨兵的配置和搭建在myredis下建立三个sentinel文件文件内容:port 26390 //配置 sentinel 端口号sentinel myid 490809635e50e1a46d091fd838538a75a3ed876f //监控 m原创 2022-04-17 12:22:54 · 2771 阅读 · 0 评论 -
如何保证缓存和数据库一致性
缓存和数据库的关联但随着业务量的增长,你的项目请求量越来越大,这时如果每次都从数据库中读数据,那肯定会有性能问题。这个阶段通常的做法是,引入缓存来提高读性能,但是具体应该怎么使用呢?如图为我们发起请求的大概流程具体流程:写请求依旧只写数据库 读请求先读缓存,如果缓存不存在,则从数据库读取,并重建缓存 同时,写入缓存中的数据,都设置失效时间这样一来,缓存中不经常访问的数据,随着时间的推移,都会逐渐「过期」淘汰掉,最终缓存中保留的,都是经常被访问的「热数据」,缓存利用率得.原创 2022-04-06 23:18:33 · 611 阅读 · 0 评论 -
Redis中的Bitmaps、HyperLogLog、Geospatial
目录Bitmaps如何选择集合类型判断用户登录状态小结HyperLogLog什么是基数应用场景命令Geospatial如何实现定位Geohash技术geohash的计算geohash的精度geohash的边界问题Redis对地理位置的支持指令操作Bitmaps在移动应用的业务场景中,我们需要保存这样的信息:一个 key 关联了一个数据集合。例如:根据用户id判断登陆状态 用户的签到情况通常情况下,我们面临的..原创 2022-03-31 16:05:03 · 825 阅读 · 0 评论 -
redis中zset的跳表
什么是跳表跳表全称为跳跃列表,它允许快速查询,插入和删除一个有序连续元素的数据链表。跳跃列表的平均查找和插入时间复杂度都是O(logn)。快速查询是通过维护一个多层次的链表,且每一层链表中的元素是前一层链表元素的子集(见右边的示意图)。一开始时,算法在最稀疏的层次进行搜索,直至需要查找的元素在该层两个相邻的元素中间。这时,算法将跳转到下一个层次,重复刚才的搜索,直到找到需要查找的元素为止。假设我们要查找一个链表中的某个节点有序链表对于单链表来说,即使数据是已经排好序的,想要查询其中的一个原创 2022-03-30 10:42:53 · 1370 阅读 · 1 评论 -
基于Redis的分布式锁
问题分析随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,单纯的Java API并不能提供分布式锁的能力。为了解决这个问题就需要一种跨JVM的互斥机制来控制共享资源的访问,这就是分布式锁要解决的问题。分布式锁主流的实现方案:基于数据库实现分布式锁 基于缓存(redis) 基于Zookeeper每一种分布式锁解决方案都有自己的优缺点:性能:redis最高 可靠性:zookeep原创 2022-03-26 23:11:08 · 1934 阅读 · 0 评论 -
缓存穿透、缓存击穿、缓存雪崩
缓存处理流程缓存穿透用户不断地像服务器发起请求,查询缓存和数据库中不存在的数据。用户发起请求大量不存在的数据,由于缓存中不存在这样的数据,所以压力全部给到数据库,同时数据库中也不存在这样的数据,导致无法更新到缓存数据。其中,redis内部一直平稳运行。大部分是由于恶意攻击导致的缓存穿透。解决方案对空值进行缓存。如果一个查询返回的数据为空(无论数据是否存在),我们都把这个空结果进行缓存,设置空结果的过期时间很短。 增加id校验。对于异常请求直接拦截 布隆过滤器。 进行实时监控原创 2022-03-26 09:57:26 · 796 阅读 · 0 评论 -
Redis主从复制
是什么主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,slave以读为主一主三从主服务器负责写操作,从服务器负责读操作。当一台从服务器挂掉之后,其他从服务器可以继续提供服务。主从复制过程主服务器主动进行每次主服务器进行写操作之后,会和从服务器进行数据同步从服务器主动进行当一台从服务器挂掉之后再次连接时,从服务器向主服务器发送进行数据同步的消息主服务器接送到从服务器发送过来的同步消息后,把主服务器数据进行持久原创 2022-03-24 20:00:27 · 642 阅读 · 0 评论 -
AOF---Redis的持久化操作
AOF(Append Only File)是什么以日志的形式来记录每个写操作,将 Redis 执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis 启动之初会读取该文件重新构建数据,也就是重放。换言之,redis 重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作AOF 默认保存的是 appendonly.aof 文件AOF默认不开启aof文件的保存路径同rdb的路径一致AOF同步频率设置第一行:始终同步,每次redis原创 2022-03-24 11:03:46 · 369 阅读 · 0 评论 -
RDB---Redis的持久化操作
Redis是一个基于内存的数据库,所以他的数据存储在内存中,但是为了避免突然宕机而导致数据全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制。Redis有两种持久化的方式,快照(RDB文件)和追加式文件(AOF文件)RDB(Redis DataBase)是什么在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。备份是如何执行的Redis会单独创建(fork原创 2022-03-23 22:22:47 · 1051 阅读 · 0 评论 -
Redis中的事务和事务冲突
Redis事务是一个单独的隔离操作:事务中的所有命令都会被序列化、按顺序的执行,事务在执行的过程中,不会被其他客户端发来的命令请求所打断。Redis事务的主要作用是串联多个命令防止别的命令插队。Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:批量操作在发送 EXEC 命令前被放入队列缓存。 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。一个事务从开始到执行会经历以原创 2022-03-22 21:02:43 · 1414 阅读 · 1 评论 -
redis的安装以及在springboot中的配置
Redis的安装首先从官网下载redis,目前的redis都是装在linux系统中,在官网中并没有提供windows版本然后通过rz上传到服务器上的opt文件夹下,之后需要安装c语言环境,可以通过yum安装也可以只安装gcc环境(可以通过gcc --version查看是否有gcc),如果显示没有则通过yum install gcc来进行安装然后对刚刚上传的redis进行解压:tar -zxvf redis-6.2.6.tar.gz解压完进入目录:redis-6.2.6在r原创 2022-03-21 17:41:32 · 1630 阅读 · 0 评论 -
Redis中数据类型(String,List,Hash,Set,Sorted Set)
StringString是 Redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。String类型是二进制安全的。意思是 Redis 的 String可以包含任何数据。比如jpg图片或者序列化的对象。String类型是 Redis 最基本的数据类型,一个Redis中字符串value最多可以是512M命令set <key> <value> 设置键值对get <key> 查询相应键值ap原创 2022-03-15 17:03:54 · 1424 阅读 · 0 评论