
Redis
楚瑞涛
这个作者很懒,什么都没留下…
展开
-
Redis 手把手教你搭建Redis集群
Redis Cluster 即 Redis 集群,是 Redis 官方在 3.0 版本推出的一套分布式存储方案。完全去中心化,由多个节点组成,所有节点彼此互联。Redis 客户端可以直接连接任何一节点获取集群中的键值对,不需要中间代理,如果该节点不存在用户所指定的键值,其内部会自动把客户端重定向到键值所在的节点。Redis 集群是一个网状结构,每个节点都通过 TCP 连接跟其他每个节点连接。在一个有 N 个节点的集群中,每个节点都有 N-1 个流出的 TCP 连接,和 N-1 个流入的连接,这些 TCP原创 2020-12-14 16:49:02 · 311 阅读 · 0 评论 -
Spring Boot优雅关闭之Redisson中ExecutorService的关闭流程源码追溯
起因起源:在使用Redisson实现分布式定时调度的过程中,遇到一个非常奇怪的问题:经过一些操作后,调度器会报一个莫名其妙的错误,status is shutdown,经过多次观察发现是在rancher平台重新发布Spring Boot项目后就会报这个错误,怀疑和Spring Boot优雅关闭有关系,所以进行一个追溯确认的过程。报错信息:Reids数据:然后翻阅RScheduledExecutorService 的方法,发现shutdown方法代码执行的 lua 脚本和目前...原创 2020-11-25 12:00:57 · 4548 阅读 · 3 评论 -
利用Redisson实现分布式延时任务调度功能
定时任务定时任务是在编码世界中经常遇到的问题,比如定时备份数据库、定时刷新缓存等,可以通过Linux定时任务完成,也可以通过框架如Spring完成,但是在分布式场景中传统单机可以完成功能就不太行了,所以需要借助其他工具来实现任务调度的功能场景:在一些订单场景中,用户下单后会锁定一些资源,然后用户非正常退出(没有触发取消订单操作),导致订单资源占用无法释放的问题。借助工具:redisson分布式服务中的分布式调度任务服务(Scheduler Service)代码关单任务定时执..原创 2020-11-23 16:52:34 · 3464 阅读 · 3 评论 -
Redis 数据结构——字典
字典一个键(key)可以和一个值(value)进行关联(或者说将键映射为值), 这些关联的键和值就被称为键值对。字典在 Redis 中的应用相当广泛, 比如 Redis 的数据库就是使用字典来作为底层实现的, 对数据库的增、删、查、改操作也是构建在对字典的操作之上的。除了用来表示数据库之外, 字典还是哈希键的底层实现之一: 当一个哈希键包含的键值对比较多, 又或者键值对中的元素都是比较长的字符串时, Redis 就会使用字典作为哈希键的底层实现。Redis 的字典使用哈希表作为底层实现, 一原创 2020-06-28 10:12:15 · 208 阅读 · 0 评论 -
Redis 数据结构——链表
链表链表在Redis中的应用非常广泛,比如列表键的底层实现之一就是链表。当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现。除了链表键之外, 发布与订阅、慢查询、监视器等功能也用到了链表, Redis 服务器本身还使用链表来保存多个客户端的状态信息, 以及使用链表来构建客户端输出缓冲区(output buffer)。每个链表节点使用一个 adlist.h/listNode 结构来表示:typedef struct li原创 2020-06-28 10:09:42 · 324 阅读 · 0 评论 -
Redis 数据结构——SDS
简单动态字符串(sds)定义Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。struct sdshdr { //记录buf 数组中已使用字节的数量 //等于SDS 所保存字符串的长度 int len; //记录buf 数组中未使用字节的数量 int free; ...原创 2020-06-27 09:46:49 · 215 阅读 · 0 评论 -
Redis 主从配置
就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主主要功能 读写分离 容灾恢复 配置方法 配从(库)不配主(库) 从库配置:slaveof 主库IP 主库端口 每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件 Info replication:可以查看Redis主从情况 修改配置文件细节操作 拷贝多个red原创 2020-05-28 18:42:55 · 238 阅读 · 0 评论 -
Redis 聊聊两种持久化机制
Redis的持久化有两种方式:RDB和AOFRDB(Redis database)。在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。Rdb 保存的是dump.rdb文件简单介绍Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持...原创 2020-05-05 08:24:07 · 307 阅读 · 0 评论 -
Redis 聊聊配置文件
配置文件是每个程序的重点文件,同时也是进行性能调整的重点。 Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 pidfile /var/run/redis.pid 指定Re...转载 2020-05-05 08:20:03 · 277 阅读 · 0 评论 -
Redis 五大数据类型及常用API
五大数据类型简介String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。 string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。 string类型是Redis最基本的数据类型,一个redisl中 字符串value最多可以是512...原创 2020-05-05 08:16:34 · 689 阅读 · 0 评论 -
Java 使用Redis实现秒杀功能
秒杀功能秒杀场景现在已经非常常见了,各种电商平台都有秒杀的产品,接下来我们模拟一个秒杀的项目,最终能够确保高并发下的线程安全。界面比较简单,但是功能基本实现。界面点击“秒杀点我”按钮后台就会输出秒杀结果。第一版使用Redis缓存数据库,使用一个key-value存储秒杀商品数量,使用set集合存储秒杀成功的用户。我们以商品0101为示例,设置商品的初始数量为200件。不...原创 2020-04-16 21:48:25 · 8151 阅读 · 6 评论