
Redis
文章平均质量分 66
当归. z Z
这个作者很懒,什么都没留下…
展开
-
缓存预热/雪崩/穿透/击穿
预先将MySQL中的数据同步至Redis的过程。原创 2024-09-12 20:26:55 · 865 阅读 · 0 评论 -
布隆过滤器
正是基于布隆过滤器的快速检测特性,我们可以在把数据写入数据库时,使用布隆过滤器做个标记。当缓存缺失后,应用查询数据库时,可以通过查询布降过滤器快速判断数据是否存在。了,大量请求只会查询Redis和布隆过滤器,而不会积压到数据库,也就不会影响数据库的正常运行。使用多个hash函数对key进行hash运算得到一个整数索引值,对位数组长度进行取模运算得到一个位置,每个hash函数都会得到一个不同的位置,将这几个位置都置1就完成了add操作。只要有其中一位是零就表示这个key不存在,但如果都是1,原创 2024-09-11 20:50:25 · 319 阅读 · 0 评论 -
Redis基于Geo的地理位置操作
【代码】Redis基于Geo的地理位置操作。原创 2024-09-08 18:05:04 · 244 阅读 · 0 评论 -
Redis基于HyperLogLog的基数统计
【代码】Redis基于HyperLogLog的基数统计。原创 2024-09-08 17:10:19 · 165 阅读 · 0 评论 -
基于canal的Redis缓存双写
canal地址:alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 (github.com)原创 2024-09-07 22:16:03 · 649 阅读 · 0 评论 -
Redis——BigKey
当redis key的数量过多时,使用keys*会耗费大量时间和性能,因此在生产上需要禁用一些危险命令。在 redis.conf 文件 SECURITY 板块中设置 rename-command例如禁用keys,flushdb,flushall。原创 2024-09-05 19:08:40 · 646 阅读 · 0 评论 -
SpringBoot集成Redis——RedisTemplate
Redis中的key和value均是以二进制的形式存储的,因此客户端输入的key和value都会经过序列化之后才发往Redis服务端。而RedisTemplate所使用序列化方式和命令行客户端采用序列化方式不相同,进而导致序列化之后的二进制数据不同,所以才会导致上述的现象。当集群中的一个主机意外宕机,集群能自动感知并自动完成主备切换,但SpringBoot客户端没有动态感知到集群的最新信息。因此我们可以仿照StringRedisTemplate自定义redis配置,将序列化方式设为合适类型。原创 2024-09-03 14:44:42 · 932 阅读 · 0 评论 -
Redis集群(cluster)
由于数据量过大,单个master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展,每个复制集只负责存储整个数据集的一部分,这就是Redis集群,其作用是提供在多个Redis节点间共享数据的程序集。原创 2024-09-02 22:46:05 · 1215 阅读 · 0 评论 -
Redis哨兵(sentinel)
巡查监控后台master主机是否故障,如果故障了根据投票数自动将某一个从库转换为新主库,继续对外服务。原创 2024-08-27 19:15:33 · 1269 阅读 · 0 评论 -
Redis复制(replica)
主从复制,主数据库以写为主,从数据库以读为主。当主数据库数据发生变化时,自动将新的数据异步同步到其它的从数据库。原创 2024-08-27 16:14:38 · 393 阅读 · 0 评论 -
Redis管道(Pipeline)
如果同时需要执行大量的命令,那么就要等待上一条命令应答后再执行,这中间不仅仅多了RTT(Round Time Trip),而且还频繁调用系统IO,发送网络请求,同时需要redis调用多次read()和write()系统方法,系统方法会将数据从用户态转移到内核态,这样就会对进程上下文产生比较大的影响,性能不好。客户端向服务端发送命令分四步(发送命令→命令排队→命令执行→返回结果),并监听Socket返回,通常以阻塞模式等待服务端响应。以及请求/响应协议的TCP服务。服务端处理命令,并将结果返回给客户端。原创 2024-08-24 19:38:32 · 452 阅读 · 0 评论 -
Redis事务
当客户端丢失连接的时候,所有东西都会被取消监视(也就是说在一个客户端中被监控的key,在另一个客户端中不生效)如图,在exec之前,被watch的tk1在另一个客户端中发生改变,此时exec后事务中的命令全部不执行。一个事务中的命令会被放入一个队列中,执行EXEC后一次性、排他地顺序执行事务块内的命令。一条命令可能无法加入队列,即在EXEC前产生错误,此时事务块内的命令全部失败(类似于编译时错误)。在EXEC后产生错误,产生错误的命令执行失败,但其它命令可以正常执行(类似于运行时错误)。原创 2024-08-24 18:58:34 · 359 阅读 · 0 评论 -
Redis持久化RDB/AOF
同时,为了便于AOF备份和拷贝,将所有的AOF文件和manifest文件放入一个单独的文件目录中,目录名由appenddirname配置决定(文件路径为前文rdb配置的 dir + appenddirname)。AOF(Append Only File):以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启后就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。原创 2024-08-23 23:33:21 · 1104 阅读 · 0 评论 -
Redis十大数据类型
Streams 会自动使用内部队列(也称为 PENDING List)留存消费组里每个消费者读取的消息保底措施,直到消费者使用 XACK 命令通知 Streams“消息已经处理完成”。由0和1状态表现的二进制位的bit数组,使用type key得到的结果为“string”,可以看为string类型的子类。消费确认增加了消息的可靠性,一般在业务处理完成之后,需要执行 XACK 命令确认消息已经被消费完成。:让组内多个消费者共同分担读取消息,实现消息读取负载在多个消费者间是均衡分布的。原创 2024-08-21 21:15:10 · 1285 阅读 · 0 评论