
redis
文章平均质量分 89
王丶小利
这个作者很懒,什么都没留下…
展开
-
Redis 原理
SDS具备自动扩容能力,如果要在原字符串基础上追加字符串,首先会申请内存空间,如果新字符串小于1M,则新空间为扩展后字符串的两倍+1;如果添加的元素超过了存储范围,intSet会自动升级编码格式,找到合适大小,并按照新的编码方式及元素个数扩容数组,倒序依次将数组中的数据拷贝到扩容后的正确位置,并将待添加的数据放入数组末尾。与HashMap思想类似。因为intSet采用数组,内存空间是连续的,在数据量较大的时候,是不方便的,查找效率也会下降,所以适合在数据量较小时使用。具备类型升级机制,可以节省内存空间;原创 2023-06-23 14:30:03 · 1187 阅读 · 0 评论 -
Redis 分布式缓存
AOF文件会比RDB文件大,而且AOF中会记录对同一个key的多次写操作,但是只有最后一次的才有意义,通过执行。单点的Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离;,简单来说就是把内存中的所有数据都记录到磁盘上,当Redis实时故障重启后,从磁盘读取快照文件,恢复数据。命令,可以让AOF文件执行重写功能,用最少得命令达到相同的效果。Redis也会在触发阈值时自动去重写AOF文件,阈值也可以在。AOF默认是关闭的,AOF的命令记录频率也可以通过修改。原创 2023-06-21 22:59:19 · 803 阅读 · 0 评论 -
Redis 分布式锁实现
判断成功之后,产生了阻塞(如:Full GC时),导致多线程安全问题,解决方法可以使用 Lua 脚本,保证以上操作的原子性。Redis提供了 Lua 脚本功能,在脚本中编写多条命令,确保多条命令执行时的原子性。Redisson是一个在 Redis 基础实现分布式工具的集合,包括分布式锁。unlock 中判断锁标识的操作和释放锁的操作不是原子操作,如果。分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。确保只能有一个线程获取锁,确保添加锁和添加过期时间的原子性。超时释放:获取锁时添加一个超时时间。原创 2023-06-18 22:43:59 · 327 阅读 · 0 评论