Redis的运行模式揭示(redis运行逻辑)
Redis的运行模式揭示
Redis是一个基于内存存储的高性能key-value数据库,支持多种数据结构,被广泛应用于缓存、消息队列、计数器、实时排名、分布式锁等场景。Redis是单线程的,但并不阻塞,能够处理高并发的请求。同时,Redis支持多种运行模式,可以根据实际需求进行配置。
一、单机模式
单机模式是Redis最简单的运行模式,即在一台主机上运行Redis Server并通过客户端进行连接。该模式下没有任何集群管理、故障转移等高可用保障能力,适合开发及测试等场景。
(1)安装Redis
在Linux环境下,安装Redis可以通过如下命令:
sudo apt-get install redis-server
安装完成后,会自动启动Redis Server。
(2)运行Redis
运行Redis可以通过如下命令:
redis-cli
该命令将启动Redis客户端,并连接到本机上运行的Redis Server。
(3)使用Redis
使用Redis可以通过如下命令:
set key value
该命令将向Redis中写入一个key-value键值对。
get key
该命令从Redis中获取指定key的值。
二、主从复制模式
主从复制模式是Redis的高可用解决方案之一,即在一台主节点上运行Redis Server,并在多台从节点上运行Redis Server,并连接到主节点,从而实现数据的备份及故障转移。该模式下,主节点进行写操作,从节点进行读操作,多个从节点之间可以实现数据的之间的同步。
(1)配置主节点
在Redis配置文件中,配置主节点的IP地址和端口号:
bind 127.0.0.1
port 6379
slaveof no one
(2)配置从节点
在Redis配置文件中,配置从节点的IP地址和端口号及主节点的IP地址和端口号:
bind 127.0.0.1
port 6380
slaveof 127.0.0.1 6379
(3)测试主从复制
在主节点中写入key:
set key value
从节点中读取key:
get key
可以发现,从节点中已经具有主节点中写入的数据。
三、集群模式
集群模式是Redis的高可用解决方案之一,即在多台主机上启动多个Redis Server,通过一定的数据分片方式,使得不同的Redis实例存储不同的数据块,从而实现数据的分布式存储及高可用能力。Redis的集群模式分为分片集群模式和复制集群模式。
(1)安装Redis Cluster
在Linux环境下,安装Redis Cluster可以通过如下命令:
sudo apt-get install redis-tools
(2)创建集群
创建集群需要有至少三个Master节点,每个Master节点都应启动多个Slave节点,使得集群中至少有6个节点。创建集群可以使用如下命令:
redis-cli –cluster create node1:6379 node2:6379 node3:6379 node4:6379 node5:6379 node6:6379 –cluster-replicas 1
执行该命令后,会创建一个分片集群,并各自占用不同的槽位范围。
(3)测试集群
在Redis Cluster中写入key:
redis-cli -c -h node1 -p 6379
set key value
在其他节点中读取key:
redis-cli -c -h node2 -p 6379
get key
可以发现,不同的节点可以分别读写分配到的不同的槽位范围的数据。
参考代码:
主机1(作为主节点)配置文件:/etc/redis/redis.conf
bind 192.168.1.101
port 6379
slaveof no one
主机2(作为从节点)配置文件:/etc/redis/redis.conf
bind 192.168.1.102
port 6379
slaveof 192.168.1.101 6379
主机3(作为主节点)配置文件:/etc/redis/redis.conf
bind 192.168.1.103
port 6379
slaveof no one
主机4(作为从节点)配置文件:/etc/redis/redis.conf
bind 192.168.1.104
port 6379
slaveof 192.168.1.103 6379
主机5(作为主节点)配置文件:/etc/redis/redis.conf
bind 192.168.1.105
port 6379
slaveof no one
主机6(作为从节点)配置文件:/etc/redis/redis.conf
bind 192.168.1.106
port 6379
slaveof 192.168.1.105 6379
创建集群命令:
redis-cli –cluster create 192.168.1.101:6379 192.168.1.102:6379 192.168.1.103:6379 192.168.1.104:6379 192.168.1.105:6379 192.168.1.106:6379 –cluster-replicas 2
在Redis Cluster中写入key命令:
redis-cli -c -h 192.168.1.101 -p 6379
set key value
在Redis Cluster中读取key命令:
redis-cli -c -h 192.168.1.102 -p 6379
get key