![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 78
凝神遐想
这个作者很懒,什么都没留下…
展开
-
Redis 多线程
在Redis 6.0中,非常受关注的第一个新特性就是多线程。这是因为,Redis一直被大家熟知的就是它的单线程架构,虽然有些命令操作可以用后台线程或子进程执行(比如数据删除、快照生成、AOF重写)。但是,从网络IO处理到实际的读写命令处理,都是由单个线程完成的。随着网络硬件的性能提升,Redis的性能瓶颈有时会出现在网络IO的处理上,也就是说,单个主线程处理网络请求的速度跟不上底层网络硬件的速度。为了应对这个问题,一般有两种方法。第一种方法是,用用户态网络协议栈(例如DPDK)取代内核网络协议栈,让网络原创 2021-12-28 19:14:10 · 5579 阅读 · 0 评论 -
Redis Cluster 集群
我曾遇到过这么一个需求:要用Redis保存5000万个键值对,每个键值对大约是512B,为了能快速部署并对外提供服务,我们采用云主机来运行Redis实例,那么,该如何选择云主机的内存容量呢?我粗略地计算了一下,这些键值对所占的内存空间大约是25GB(5000万*512B)。所以,当时,我想到的第一个方案就是选择一台32GB内存的云主机来部署Redis。因为32GB的内存能保存所有数据,而且还留有7GB,可以保证系统的正常运行。同时,我还采用RDB对数据做持久化,以确保Redis实例故障后,还能从RDB原创 2021-12-27 19:46:52 · 144 阅读 · 0 评论 -
Redis 哨兵机制
在主从库模式下,如果从库发生故障了,客户端可以继续向主库或其他从库发送请求,进行相关的操作,但是如果主库发生故障了,那就直接会影响到从库的同步,因为从库没有相应的主库,可以进行数据复制操作了。而且,如果客户端发送的都是读操作请求,那还可以由从库继续提供服务,这在纯读的业务场景下还能被接受。但是,一旦有写操作请求了,按照主从库模式下的读写分离要求,需要由主库来完成写操作。此时,也没有实例可以来服务客户端的写操作请求了。无论是写服务中断,还是从库无法进行数据同步,都是不能接受的。所以,如果主库挂了,我们原创 2021-12-23 19:33:26 · 107 阅读 · 0 评论 -
Redis主从复制
之前没有了解过 Redis中 RDB 和 AOF 的小伙伴,点这里先了解下 RDB 和 AOF如果 Redis 发生了宕机,它们可以分别通过回放日志和重新读入 RDB 文件的方式恢复数据,从而保证尽量少丢失数据提升可靠性。不过,即使用了这两种方法,也依然存在服务不可用的问题。比如说,我们在实际使用时,只运行了一个Redis实例,如果这个实例宕机了,它在恢复期间,是无法服务新来的数据存取请求的。那么,我们总说的Redis具有高可靠性,又是什么意思呢?其实,是有两层含义的一是数据尽量少丢失二是服务尽量原创 2021-12-22 20:37:24 · 114 阅读 · 0 评论 -
单线程Redis 为什么那么快
通常来说,单线程的处理能力要比多线程差很多,但是Redis却能使用单线程模型,达到每秒数十万级别的处理能力,这是为什么呢?其实,这是Redis多方面设计选择的一个综合结果。一方面,Redis的大部分操作在内存上完成,再加上它采用了高效的数据结构,例如哈希表和跳表,这是它实现高性能的一个重要原因。另一方面,就是Redis采用了多路复用机制,使其在网络IO操作中,能并发处理大量的客户端请求,实现高吞吐率接下来,重点说下多路复用机制。首先,我们要弄明白网络操作的基本IO模型和潜在的阻塞点。毕竟,Redis采原创 2021-12-21 19:08:06 · 467 阅读 · 0 评论 -
Redis中“万金油“的string,为什么不好用了
分享一个曾经使用Redis时遇到的需求以及解决方案当时,要开发一个图片存储系统,要求这个系统能快速地记录图片ID,和图片在存储系统中保存时的ID(可以直接叫作图片存储对象ID)。同时,还要能够根据图片ID快速查找到图片存储对象ID。因为图片数量巨大,所以我们就用10位数来表示图片ID和图片存储对象ID,例如,图片ID为1101000052,它在存储系统中对应的ID号是3301000052。photo_id: 1101000052photo_obj_id: 3301000052可以看到,图片ID和原创 2021-12-20 18:43:20 · 155 阅读 · 0 评论 -
Redis 淘汰策略
Redis已经设置了过期时间也就是TTL,那么键过期了不就是已经删除了吗?为什么还存在淘汰策略呢?这要从Redis的过期策略来聊起过期策略分为两种一个是定时删除还有一个是惰性删除先来看下定时删除,就是Redis会将每个设置了过期时间的key,放入到一个独立的字典中,然后会定期遍历这个字典来删除到期的key。除了定时遍历之外,它还会使用惰性策略来删除过期的 key。所谓惰性策略就是在客户端访问这个 key 的时候,Redis 对 key 的过期时间进行检查,如果过期了就立即删除。说白了,定时原创 2021-12-15 19:38:17 · 754 阅读 · 0 评论 -
CentOS系统搭建Redis集群(1主2从3哨兵)
这里我们采用的集群整体架构就是主从结构+哨兵(sentinel),实现容灾的自动切换,如下图所示:一个主节点(master)可拥有多个从节点(slave),从节点实现对主节点的复制,保证数据同步。而哨兵(sentinel)则对各节点进行监控,主要包括主节点存活检测、主从运行情况检测等,一旦主节点宕机,哨兵可自动进行故障转移 (failover)、主从切换。接下来就开始搭建这样一个集群,首先是主从结构,然后是哨兵模式接下来搭建 Redis 1主2从集群Redis 集群搭建配置如下主机配置bi原创 2021-11-30 19:45:39 · 938 阅读 · 0 评论 -
Linux系统上搭建 Redis Cluster 集群
首先创建集群目录[root@localhost local]# mkdir /usr/local/redis/cluster要创建6个实例,在这个文件夹中再创建6个文件夹,进入集群目录可以看到已经创建成功了,后面多了个data目录,这个目录是放数据的,一会讲配置文件的时候在具体的细说[root@localhost local]# cd cluster/[root@localhost cluster]# mkdir -p 9001/data 9002/data 9003/data 9004.原创 2021-11-29 20:54:24 · 748 阅读 · 0 评论 -
Docker 搭建 Redis 主从复制 + 哨兵集群
主从复制在官网下载 redis.conf 配置文件,修改以下内容修改配置文件master 节点配置port 6379# IP绑定,注释此行# bind 127.0.0.1pidfile /var/run/redis_6379.pidlogfile "/data/redis.log"replication 节点配置# 如果同一台服务器上启动,注意修改为不同的端口port 6380logfile "/data/slave_1.log"# 同一台服务器上要修改成 docker 容器内部原创 2021-11-28 21:29:50 · 119 阅读 · 0 评论 -
Docker 搭建 Redis Cluster 集群
Redis 配置文件根据需要自己可以定制# bind 127.0.0.1port ${PORT}protected-mode nocluster-enabled yescluster-config-file nodes-${PORT}.confcluster-node-timeout 5000cluster-announce-ip 10.0.18.8cluster-announce-port ${PORT}cluster-announce-bus-port 1${PORT}append原创 2021-11-27 09:46:18 · 441 阅读 · 0 评论 -
CentOS 安装 Redis
下载Redis进入官网找到下载地址:https://redis.io/download右键 Download按钮,选择复制链接进入到Xshell控制台[root@centos ~]# cd /usr/local[root@centos local]# mkdir redis[root@centos local]# cd redis/[root@centos local]# wget https://download.redis.io/releases/redis-6.2.4.tar.gz原创 2021-11-26 09:43:03 · 332 阅读 · 0 评论 -
Docker 安装 Redis
查看Docker中可用的版本docker search redis拉取官方最新版本的镜像docker pull redis查看拉取的本地镜像docker images非自定义配置文件运行容器docker run -itd --name redis-01 -p 6379:6379 redis-p 6379:6379 映射容器服务的6379端口到宿主机的6379端口。外部可以直接通过 宿主机ip:6379 访问到 Redis服务.查看容器的运行信息docker ps测试r原创 2021-11-24 21:00:43 · 751 阅读 · 0 评论