首页
关于
1
声明式API与Kubernetes编程范式
2
撬动离线业务:Job与CronJob
3
容器化守护进程的意义:DaemonSet
4
StatefulSet 有状态应用实践
5
StatefulSet 存储状态
kaixindeken
累计撰写
247
篇文章
累计创建
16
个标签
累计收到
0
条评论
栏目
首页
关于
搜索
标签搜索
tensorflow
golang
redis
spring
mysql
laravel
twine
net
data_structure
algorithm
openfaas
kubernetes
docker
python
pytorch
php
目 录
CONTENT
以下是
redis
相关的文章
2021-09-10
Redis 单线程模型
Redis 作为广为人知的内存数据库,在玩具项目和复杂的工业级别项目中都看到它的身影,然而 Redis 却是使用单线程模型进行设计的,这与很多人固有的观念有所冲突,为什么单线程的程序能够抗住每秒几百万的请求量呢?这也是我们今天要讨论的问题之一。除此之外,Redis 4.0 之后的版本却抛弃了单线程模
2021-09-10
109
0
0
2021-08-12
通过 Redis Cluster 水平扩展 Redis 构建分布式 Redis 集群
引子随着业务规模的增长,存放在内存中的 Redis 数据越来越多,最终肯定会面临现有内存资源不足以存放 Redis 数据的问题,如果数据规模很小,比如几个 G,可以轻松通过升级 Redis 实例内存来解决,比如原来是 4GB 内存,则将其扩展到 8 GB或者更高,但是如果需要存放几十几百 GB 的数
2021-08-12
135
0
0
2021-08-12
基于 PubSub 实现 Redis 哨兵集群以及哨兵与主从库之间的通信
基于 PubSub 实现哨兵集群通信哨兵容器之间可以相互感知并构建起哨兵集群,要归功于 Redis 内置的 PubSub 功能。在配置哨兵实例时,只需要配置主库 IP 地址和端口号即可,这样一来,一旦该哨兵容器启动后,就会通过这个信息与主库建立连接并在该主库发布自己的 IP 地址和端口号,与此同时,
2021-08-12
141
0
0
2021-04-28
Redis 指令执行的原子性以及对管道和事务的支持
通过 Lua 脚本保证操作序列的原子性由于 Redis 通过单线程处理客户端请求,所以所有单个 Redis 指令的执行都是原子操作,但是从业务代码角度来说,获取指定键,然后对其进行简单判断和更新操作,就会至少涉及到两个 Redis 指令的执行。我们通过伪代码演示这个操作流程:value1 = get
2021-04-28
183
0
1
2021-04-28
Redis 数据持久化机制(下):RDB 快照篇
RDB 是 Redis DataBase 的简写,所以 RDB 快照也就是 Redis 数据库快照,和 AOF 日志不同,它是系统某个时刻 Redis 数据库全量数据的快照,这意味着执行一次 RDB 快照需要遍历所有 Redis 键值对,然后持久化到磁盘,这两者都是耗时操作,因此,就不能在 Redi
2021-04-28
130
0
1
2021-04-28
Redis 数据持久化机制(上):AOF 日志篇
数据持久化引入撑起 Redis 高性能的三大基石分别是基于内存操作、多路复用的非阻塞单线程 IO 模型、以及底层高效的数据结构设计。这里面基于内存操作的功劳不容小觑,而且厥功至伟。不过任何事物都有其两面性,相较于磁盘操作,内存操作性能确实可以高出好几个数量级,但是缺点也很明显 —— 不能持久化数据,
2021-04-28
118
0
0
2021-04-28
Redis 过期删除策略(三):通过 LRU 淘汰算法删除过期键
引子当 Redis 占用内存超过 redis.conf 配置文件中配置的内存上限,就会通过与之关联的淘汰策略清理 Redis 键。与前两者策略不同的是,Redis 默认并没有配置内存上限,这种情况下,Redis 会一直占用内存资源直到耗尽所在机器的物理内存,进而触发内存与磁盘的交换(swap),我们
2021-04-28
126
0
0
2021-04-28
Redis 过期删除策略(二):通过懒惰删除异步删除过期键
被动删除的引入Redis 会通过异步线程定期检查过期键字典并主动删除过期键,但是这个主动删除并不会全量扫描所有过期键,而是采用了贪心策略,分多次清理所有过期键,这当然是为了性能考虑,但是这么做也存在一个显而易见的问题:存在内存泄露的风险,即某些键已经过期,但是被主动删除策略漏掉了。如果客户端试图访问
2021-04-28
141
0
0
2021-04-28
Redis 过期删除策略(一):通过定期扫描主动删除过期键
概述Redis 底层会通过一张巨大的哈希表来维护所有不同类型的键值对,我们可以通过 Redis 为 KEYS 提供的指令来操作这些键值对:其中包括设置过期时间的 EXPIRE、EXPIREAT 指令,前者用于指定多少秒后过期,后者用于指定具体的过期时间点,无论使用哪个指令,在过期时间到来后,都无法再
2021-04-28
147
0
0
2021-04-28
Redis 常见数据结构的底层实现系列(六):字典篇
压缩列表当我们初始化一个新的 Redis 字典时,默认使用压缩列表来创建:robj *createHashObject(void) { unsigned char *zl = ziplistNew(); robj *o = createObject(OBJ_HASH, zl); o
2021-04-28
114
0
0
1
2