![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
jackcheng1117
Wake up everyday stronger than yesterday
展开
-
Redis对象结构
Redis数据结构之Redis对象 Redis基本数据类型 Redis提供了5个基本数据类型 : 字符串对象 (string)、列表对象 (list)、哈希对象 (hash)、集合对象 (set) 、有序集合对象 (zset)。这五种基本数据对象都至少使用了之前介绍的一种Redis编码方式。 Redis对象 Redis中每个对象都由一个 redisObject 结构表示: typedef struct redisObject { //数据类型 unsigned type:4; //数据编码原创 2020-09-04 17:48:46 · 224 阅读 · 0 评论 -
Redis实现异步消息、延时队列
Redis实现异步消息、延时队列 Redis 的消息队列不是专业的消息队列,它没有非常多的高级特性,没有 ack 保证,如果对消息的可靠性有着极致的追求,那么它就不适合使用。庆幸的是Redis5版本推出了Stream数据结构 之前团队内部有一个向第三方数据同步的需求,笔者就采用了Redis的方案模拟消息队列(使用定时任务 + 分布式锁方式)进行数据同步。由于数据量不大所以采用了这种方式,如果数据量过大需要衡量Redis内存问题。本篇Mark一下使用Redis作为消息队列的使用 异步消息(消息队列) 消息中原创 2020-09-04 17:27:06 · 1198 阅读 · 0 评论 -
Redis数据过期时间及删除策略
Redis数据过期时间及删除策略 Redis数据设置过期时间 EXPIRE <KEY> <seconds> : 设置KEY有效期为seconds秒, 单位精度 :秒 PEXPIRE <KEY> <seconds> : 设置KEY有效期为seconds毫秒, 单位精度:毫秒 EXPIREAT <KEY> <timestamp> : 设置KEY到UNIX时间戳timestamp时间点过期 单位精度:秒 PEXPIREAT <KEY&原创 2020-08-12 21:08:37 · 945 阅读 · 0 评论 -
Redis分布式锁
Redis分布式锁(单Redis实例) 注: 本章适用于单Redis实例的分布式锁。而且分为两个版本,分两个版本的原因是因为Redis2.6.12版本之后SET命令才支持 NX、EX等参数 以下代码为伪代码 版本一 (适用于Redis2.6.12版本之前) //Redis锁名称 private static final String REDIS_LOCK_KEY_PREFIX = "lock"; //锁有效期 private static final String long TIMEOUT = 5000;原创 2020-08-12 20:54:29 · 176 阅读 · 0 评论 -
Redis分布式解决方案 (consistent hash)
传统的redis分布式算法: 比如现在有一个数据,使用redis存储时,会现将其进行hash计算,然后根据计算的hash值进行取模,根据取模的结果将数据缓存到与结果值对应的redis中。算法如下: 案例1:传统分布式算法 使用传统的redis分布式算法的结果如下:根据取模的结果,将数据存储到相应的redis中 现在由于业务的需求,我们...原创 2018-07-22 17:23:32 · 2181 阅读 · 0 评论 -
并发环境下,先操作数据库还是先操作缓存?
前言 在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。下面我分几种方案阐述。 缓存维护方案一 假设有一写(线程A)一读(线程B)操作,先操作缓存,在操作数据库。,如下流程图所示: 1)线程A发起一个写操作,第一步del cache 2)线程A第二步写入新数据到DB 3)线程B发起一个读操...原创 2019-08-20 17:58:31 · 333 阅读 · 0 评论