其他数据库

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中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数据库,使用一个字段来存储库存,每次扣减库存去更新这个字段。还是使用数据库,但是将库存分层多份存到多条记录里面,扣减库存的时候路由一下...