![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 70
redis
「已注销」
这个作者很懒,什么都没留下…
展开
-
分布式锁 redis实现
分布式锁 就是一个在分布式下的互斥机制,保证同一时刻只有一个机器的一个线程能获取到锁。 分布式锁 保证同一时刻只有一个机器的一个线程能获取到锁 锁失效机制,防止死锁 非阻塞获取锁,获取不到直接返回 高性能获取锁、释放锁 解铃还须系铃人 redis实现分布式锁 一个关键是保证加锁、解锁的原子性。 加锁 执行setnx 和expire的合成原子指令,value为随机生成的UUID。若key不存在,设置key并设置过期时间。若key存在,返回0. 设置过期时间,防止死锁。 解锁 使用redis执行lua脚本,原创 2022-03-20 11:03:13 · 542 阅读 · 0 评论 -
redis 数据结构 精讲
数据结构 string string的结构 string { int len;//实际字符串的长度 int free;//剩余可用长度 char buf[]; } 有长度字段,求长度为O(1)。 预分配。当len小于1M时,每次分配空间为原来的2倍。当len大于1M时,每次分配空间增加1M。预留空间较多,append效率高,分配次数减少,但占用较多内存。 惰性释放空间。缩短字符串时,不立即释放因缩短而空出来的空间。 二进制安全。保留原始的字符串,不会受有’\0’的影响。可以用于存储图片、音频、视频等,图片原创 2022-03-22 22:33:04 · 801 阅读 · 0 评论 -
redis 核心知识点
Redis redis的特点 高性能:读11万次每秒,写8万次每秒 高可用:分布式集群可以是多主多从,当主节点发生异常时,对应从节点可以顶替,保持高可用。 易扩展:redis3.0以后的所有数据都存储在16384个槽中,创建集群时需要将槽分配给各个主节点,需要扩容时,将槽重新分配给新的主节点,开启数据迁移即可,在扩容时redis仍然可用。 数据结构丰富:有string、list、set、sorted_set等 原子性:redis是单线程 持久化:redis可以将不用的内存写入磁盘中。重启时从磁盘加载进内存原创 2022-03-22 22:34:13 · 865 阅读 · 0 评论