![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 80
friover
这个作者很懒,什么都没留下…
展开
-
Redis第十章 Redis HyperLogLog与事务、Redis 7.0前瞻
HyperLogLog 基于概率论中伯努利试验并结合了极大似然估算方法,并做了分桶优化。实际上目前还没有发现更好的在大数据场景中准确计算基数的高效算法,因此在不追求绝对准确的情况下,使用概率算法算是一个不错的解决方案。概率算法不直接存储数据集合本身,通过一定的概率统计方法预估值,这种法可以大大节省内存,同时保证误差控制在一定范围内。目前用于基数计数的概率算法包括:Linear Counting(LC):早期的基数估计算法,LC 在空间复杂度方面并不算优秀;原创 2023-06-11 17:43:20 · 805 阅读 · 0 评论 -
redis第九章-Redis队列Stream、Redis6多线程详解
反应”器名字中”反应“的由来:“反应”即“倒置”,“控制逆转”,具体事件处理程序不调用反应器,而向反应器注册一个事件处理器,表示自己对某些事件感兴趣,有时间来了,具体事件处理程序通过事件处理器对某个指定的事件发生做出反应;这种控制逆转又称为“好莱坞法则”(不要调用我,让我来调用你)原创 2023-06-10 22:01:07 · 778 阅读 · 0 评论 -
redis第五第六章-redis并发缓存架构和性能优化
由于缓存层承载着大量请求, 有效地保护了存储层, 但是如果缓存层由于某些原因不能提供服务(比如超大并发过来,缓存层支撑不住,或者由于缓存设计不好,类似大量请求访问bigkey,导致缓存能支撑的并发急剧下降), 于是大量请求都会打到存储层, 存储层的调用量会暴增, 造成存储层也会级联宕机的情况。解释:当线程1更新了数据库,此时因为网络或者业务逻辑等各种原因,还没有更新缓存,这时线程2也更新了这条数据,并且更新了缓存,最后线程1才更新了缓存,这样就会出现数据不一致的情况。原创 2023-06-05 00:21:33 · 816 阅读 · 0 评论 -
redis第四章-redis下redisson分布式锁原理和源码分析
如图,当线程1获得锁之后,会执行业务流程代码,将锁的持有时间设置为30秒,同时每隔10秒检查是否还持有锁,如果业务流程代码没有执行完,就会延长持有锁时间再到30秒,直到执行完成释放锁。因为传入的KEYS[1]代表的是传入的锁key,ARGV[1]代表的是时间,看下图,可以看到默认的是30秒,ARGV[2]代表的是线程id+唯一标识uuid组合,方便删除锁使用的。,这个用了juc的信号量,简单理解就是会在这里等待25s,这25s是等待状态,不会占用cpu,当25s过后,就会再次执行while循环。原创 2023-06-04 01:19:50 · 499 阅读 · 0 评论 -
redis第三章-redis集群redisCluster
Redis Cluster集群搭建及原理原创 2023-06-03 00:42:58 · 641 阅读 · 0 评论 -
redis第二章-第二课-主从模式和哨兵模式原理
5.总结,实际这是个伪主从复制,使用的同一个redis,只是不同配置罢了,但大体配置都是一样的,就是改日志文件,存储路径这些,当如果是多台服务器的话,或者一台服务器两个redis的话,是不需要改这些文件配置的,只需要配置第3步,指定主节点的地址和端口号就行了。1.复制redis有个sentinel.conf文件,也是将port,daemonize(后台启动),pidfile,logfile,dir改为对应端口号的地址。2、修改该文件,修改端口号,线程文件,日志文件,以及指定文件存放目录。原创 2023-06-01 22:36:49 · 644 阅读 · 0 评论 -
redis第二章-第一课-持久化rdb和aof以及混合模式
如果开启了混合持久化,AOF在重写时,不再是单纯将内存数据转换为RESP命令写入AOF文件,而是将重写这一刻之前的内存做RDB快照处理,并且将RDB快照内容和增量的AOF修改内存数据的命令存在一。起,都写入新的AOF文件,新的文件一开始不叫appendonly.aof,等到重写完新的AOF文件才会进行改名,覆盖原有的AOF文件,完成新旧两个AOF文件的替换。么,这块数据就会被复制一份,生成该数据的副本。注意,如果执行带过期时间的set命令,aof文件里记录的是并不是执行的原始命令,而是记录key过期的。原创 2023-05-31 21:17:27 · 627 阅读 · 0 评论 -
redis的使用第一章
Redis 的单线程主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。因为它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换性能损耗问题。Redis的IO多路复用:redis利用epoll来实现IO多路复用,将连接信息和事件放到队列中,依次放到文件事件分派器,事件分派器将事件分发给事件处理器。原创 2023-05-30 22:53:00 · 500 阅读 · 0 评论 -
redis配置哨兵模式(基于主从复制之上的一主二仆)
1.配置三个redis的配置文件,假设有三个redis搭成的集群(请忽略redis.conf这个原生的文件)[root@renxh kconfig]# lsredis79.conf redis80.conf redis81.conf redis.conf sentinel.conf2.随便打开一个redis79.conf,修改里面的配置文件,其余redis80.conf和redis81.conf类似修改(1)修改端口号为6379,如果是80或者81就修改端口为6380和6381(2)修原创 2021-04-06 21:02:36 · 201 阅读 · 0 评论