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