
Redis
文章平均质量分 93
Redis
A.iguodala
共同进步,加油!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis 事件
文章目录1. 文件事件1.1 文件事件处理器组件2. 时间事件2.1 serverCron 函数3. 事件的调度与执行Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件(file event):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端(或者其他服务器)的通信会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作。时间事件(time event):Redis服务器中的一些原创 2021-08-12 21:51:11 · 229 阅读 · 0 评论 -
Redis 事务
文章目录一、概述二、事务的实现1. 事务开始2. 命令入队3. 事务队列4. 执行事务5. 取消事务三、WATCH命令的实现1. 实现四、事务的ACID1. 原子性2. 一致性3. 隔离性4. 持久性一、概述Redis通过MULTI、EXEC、WATCH等命令来实现事务功能,事务提供了一种将多个命令请求打包,然后一次性、按顺序执行多个命令的机制,在事务执行期间,服务器不会中断事务而去执行其他客户端的命令请求,而会在事务执行结束才去处理其他请求以下举例实现一个事务,从MULTI开始到EXEC提交结束交给原创 2021-07-13 13:47:10 · 191 阅读 · 0 评论 -
Redis 集群的实现
一原创 2021-07-12 12:12:54 · 905 阅读 · 2 评论 -
Redis Sentinel的实现
文章目录一、简介二、启动并初始化Sentinel一、简介Sentinel(哨岗、哨兵)是Redis的高可用性(high availability)解决方案:由一个或多个Sentinel实例(instance)组成的Sentinel系统(system)可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求其中seever1为主服务器,剩下的为从服务器原创 2021-07-02 00:02:18 · 216 阅读 · 1 评论 -
Redis 主从复制的实现
文章目录一、复制1. 旧版复制功能实现1.1 同步1.2 命令传播1.3 旧版复制的缺陷2. 新版复制功能的实现2.1 部分重同步的实现2.1.1 复制偏移量一、复制在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项(配置配置文件),让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave)进行复制中的主从服务器双方的数据库将保存相同的数据,概念上将这种现象称作“数据库状原创 2021-06-26 15:10:46 · 225 阅读 · 0 评论 -
Redis 数据库
文章目录一、服务器中的数据库二、切换数据库三、数据库键空间读写键空间的维护操作四、设置键的生存时间或过期时间1. 设置过期时间2. 保存过期时间3. 计算并返回剩余时间和过期键的判定五、过期删除策略六、Redis的删除策略1. 惰性删除策略的实现2. 定期删除策略的实现一、服务器中的数据库Redis服务器将所有数据库都保存在服务器状态redisServer结构的db数组中,db数组的每个项都是一个redisDb结构,每个redisDb结构代表一个数据库。在初始化服务器时,程序会根据服务器状态的dbnum原创 2021-06-21 16:49:01 · 8527 阅读 · 0 评论 -
Redis之缓存预热、缓存雪崩、缓存击穿和缓存穿透以及布隆过滤器
文章目录一、缓存预热二、缓存雪崩三、缓存击穿四、缓存穿透五、布隆过滤器1. 原理实现2. Google工具包Guava实现布隆过滤器3. Redis布隆过滤器解决缓存穿透4. 安装rebloom一、缓存预热缓存预热就是系统启动前,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!二、缓存雪崩指的是在短时间内,大量的键过期导致请求直接打到数据库,或者是Redis宕机,导致请求直接打到数据库,而数据库无法处理如此大量的请原创 2021-06-20 23:28:04 · 3198 阅读 · 1 评论 -
Redis高级数据类型 :bitmap、hyperloglog和GEO
文章目录一、bitmap1. bitmap的应用2. bitmap的数据结构一、bitmap1. bitmap的应用应用场景:例如签到,打卡的应用,每天的状态只需要用一个bit来存储,就算一年365天也只需要356bit按年去存储一个用户的签到情况,365天只需要365/8~46 Byte,1000W用户量一年也只需要44 MB就足够了。假如是亿级的系统,每天使用1个1亿位的Bitmap约占12MB的内存(10^8/8/1024/1024),10天的Bitmap的内存开销约为120MB,内存压力原创 2021-06-19 23:41:08 · 550 阅读 · 0 评论 -
Redis之RDB持久化和AOF持久化
文章目录一、RDB1. RDB文件的创建与载入2. 自动间隔性保存一、RDB因为Redis是内存数据库,它将自己的数据库状态储存在内存里面,所以如果不想办法将储存在内存中的数据库状态保存到磁盘里面,那么一旦服务器进程退出,服务器中的数据库状态也会消失不见。为了解决这个问题,Redis提供了RDB持久化功能,这个功能可以将Redis在内存中的数据库状态保存到磁盘里面,避免数据意外丢失1. RDB文件的创建与载入有两个Redis命令可以用于生成RDB文件,一个是save,另一个是bgsavesave原创 2021-06-18 22:15:45 · 295 阅读 · 0 评论 -
Redis数据结构(三):对象
文章目录一、简介二、对象的类型与编码三、字符串对象1. 编码形式2. 编码的转换四、列表对象五、哈希对象1. ziplist编码2.hashtable编码3. 编码转换六、集合对象1. intset编码2.hashtable编码3. 编码转换七、有序集合1. ziplist2. skiplist编码3. 编码的转换一、简介Redis并没有直接使用简单动态字符串(SDS)、双端链表、字典、压缩列表、整数集合等等这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包含字符串对象、原创 2021-06-15 23:50:37 · 149 阅读 · 0 评论 -
Redis中的数据结构(二):跳跃表、整数集合、压缩列表和快表
文章目录一、一、原创 2021-06-14 18:22:27 · 1154 阅读 · 0 评论 -
Redis中的数据结构(一):字符串、链表和字典(哈希)
文章目录一、简单字符串二、链表一、简单字符串Redis自己构建了一种名为简单动态字符串(simple dynamic string ,SDS) 的类型,并将SDS作为Redis的默认字符串表示每个sds.h / sdshdr 结构表示一个SDS值:struct sdshdr { // 记录buf数组中已使用的字节的数量 // 等于SDS锁保存的字符串的长度 int len; // 记录buf数组中未使用字节的数量 int free; // 字节数组,用于保存字符串 char buf[]原创 2021-06-13 15:20:16 · 550 阅读 · 0 评论 -
linux CentOs安装并部署redis6.0.6,远程连接redis
目录安装gcc环境安装redis安装gcc环境使用命令 安装gcc环境:yum install gcc-c++如果是安装过gcc环境,并且安装redis6.0+需要将gcc升级到gcc9.3运用指令:yum -y install centos-release-sclyum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilsscl enable devtoolset-9 bash安装redi原创 2021-02-12 00:37:58 · 699 阅读 · 2 评论