其他数据库 Redis分布式锁的正确实现方法总结 分布式锁一般有三种实现方式: 1、数据库乐观锁; 2、基于Redis的分布式锁; 3、基于ZooKeeper的分布式锁。 本文将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问...
其他数据库 Redis分布式锁升级版RedLock及SpringBoot实现方法 分布式锁概览 在多线程的环境下,为了保证一个代码块在同一时间只能由一个线程访问,Java中我们一般可以使用synchronized语法和ReetrantLock去保证,这实际上是本地锁的方式。但是现在公司都是流行分布式架构,在分布式环境下,如何保证不同节点...
其他数据库 从源码解读redis持久化 为什么需要持久化? 由于Redis是一种内存型数据库,即服务器在运行时,系统为其分配了一部分内存存储数据,一旦服务器挂了,或者突然宕机了,那么数据库里面的数据将会丢失,为了使服务器即使突然关机也能保存数据,必须通过持久化的方式将数据从内存保存到磁盘中。 对...
其他数据库 关于redigo中PubSub的一点小坑分析 前言 最近在用 golang 做一些 redis 相关的操作,选用了 redigo 这个第三方库。然后在使用 Pub/Sub 的时候,却发现了一个小坑…… Redis Client 首先,我们来初始化一个带连接池的 Redis Client: import...
其他数据库 redis-shake同步redis数据的实现方法 前言 和很多同步工具一样,redis shake为同步redis数据而存在。在很多场景下,如果不使用同步工具,如果需要同步redis数据是一件相对繁琐的事情,可能需要编写代码,专门来做同步这件事,这就对开发提出了较高的要求,需要考虑到各种场景, 有了red...
其他数据库 Redis字典实现、Hash键冲突及渐进式rehash详解 本笔记参考《Redis设计与实现》 P24~ 37 Redis字典实现 哈希表节点结构 typedef struct dictEntry { // 键 void *key; // 值 : 可以是一个指针,或者是一个uint64/int64 的整数 unio...
其他数据库 详解Redis中Lua脚本的应用和实践 引言 前段时间组内有个投票的产品,上线前考虑欠缺,导致被刷票严重。后来,通过研究,发现可以通过 redis lua 脚本实现限流,这里将 redis lua 脚本相关的知识分享出来,讲的不到位的地方还望斧正。 redis lua 脚本相关命令 这一小节的内...
其他数据库 Redis中过期键如何删除示例详解 前言 Redis 中的 key 设置一个过期时间,在过期时间到的时候,Redis 是如何清除这个 key 的呢? 这来分析下 Redis 中的过期删除策略和内存淘汰机制 Redis 中 key 的过期删除策略 Redis 中提供了三种过期删除的策略 1、定...
其他数据库 Redis中的动态字符串学习教程 sds 的用途 Sds 在 Redis 中的主要作用有以下两个: 实现字符串对象(StringObject); 在 Redis 程序内部用作 char* 类型的替代品; 以下两个小节分别对这两种用途进行介绍。 实现字符串对象 Redis 是一个键值对数据库...
其他数据库 redis 数据删除策略和逐出算法的问题小结 数据存储和有效期 在 redis 工作流程中,过期的数据并不需要马上就要执行删除操作。因为这些删不删除只是一种状态表示,可以异步的去处理,在不忙的时候去把这些不紧急的删除操作做了,从而保证 redis 的高效 数据的存储 在redis中数据的存储不仅仅需要...
其他数据库 Redis中的数据过期策略详解 1、Redis中key的的过期时间 通过EXPIRE key seconds命令来设置数据的过期时间。返回1表明设置成功,返回0表明key不存在或者不能成功设置过期时间。在key上设置了过期时间后key将在指定的秒数后被自动删除。被指定了过期时间的key在...
其他数据库 如何使用Redis实现电商系统的库存扣减 在日常开发中有很多地方都有类似扣减库存的操作,比如电商系统中的商品库存,抽奖系统中的奖品库存等。 解决方案 使用mysql数据库,使用一个字段来存储库存,每次扣减库存去更新这个字段。还是使用数据库,但是将库存分层多份存到多条记录里面,扣减库存的时候路由一下...