1. Redis单机安装
Redis是一个开源的内存数据结构存储系统,支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,通常被用作缓存、消息代理、队列、实时数据分析以及持久化存储等。在本部分,我们将介绍Redis的单机安装和配置。
1.1 安装Redis
在开始Redis的安装前,我们需要确保已经安装了gcc编译器和tcl库。可以使用以下命令检查gcc编译器和tcl库是否已经安装:
gcc -v
tclsh
如果命令执行后输出了gcc或tclsh的版本信息,则说明它们已经安装。否则,可以使用以下命令在Ubuntu系统中安装它们:
sudo apt-get update
sudo apt-get install gcc
sudo apt-get install tcl
我们可以从Redis的官方网站(https://redis.io)下载最新版本的Redis,解压后即可进行安装。可以使用以下命令完成Redis的安装:
wget https://download.redis.io/releases/redis-6.2.5.tar.gz
tar xzf redis-6.2.5.tar.gz
cd redis-6.2.5
make
Redis的安装完成后,可以在src目录下找到redis-server程序,使用以下命令启动Redis:
cd src
./redis-server
此时,Redis已经成功启动,并且在本地6379端口监听请求。
1.2 配置Redis
在Redis的安装过程中,我们并没有做任何配置,因此需要进行一些基本的配置,以确保Redis能够正常运行。
Redis的配置文件位于Redis的安装目录下的redis.conf文件中。可以使用以下命令查看该文件:
cd /usr/local/redis
cat redis.conf
Redis的配置文件包含了Redis使用的所有配置项,如端口号、密码、日志文件等。在这个文件中,可以通过修改相应的配置项来进行Redis的配置。
以下是一些常用的Redis配置项:
daemonize:将Redis后台服务化。默认值为no,设置为yes可以将Redis服务在后台运行。
port:设置Redis监听的端口号。默认值为6379。
bind:设置Redis监听的IP地址。默认值为127.0.0.1,表示只监听本地地址。
requirepass:设置Redis连接密码。
logfile:设置Redis日志文件路径。
dbfilename:设置Redis数据库文件名。
可以使用以下命令修改这些配置项:
vim redis.conf
在打开的文件中,找到相应的配置项,使用vim命令修改它们。配置文件中的注释可以帮助我们了解每个配置项的具体作用。
完成配置后,需要重启Redis才能使修改生效。可以使用以下命令重启Redis:
killall redis-server
./redis-server
这样,我们就完成了Redis的单机安装和配置。
2. 哨兵模式集群安装
在实际生产中,我们往往需要使用Redis集群来保证可用性和性能,即使某个节点出现故障,整个集群也能够继续工作。Redis的哨兵模式可以实现Redis集群的高可用性。在本部分,我们将介绍Redis哨兵模式的安装和使用。
2.1 安装Redis集群
Redis集群由多个Redis实例组成,每个实例被称为一个节点。在Redis哨兵模式中,Redis集群至少需要三个节点来保证高可用性。可以使用以下命令来安装Redis集群的三个节点:
wget https://download.redis.io/releases/redis-6.2.5.tar.gz
tar xzf redis-6.2.5.tar.gz
cd redis-6.2.5
make
cd src
cp redis-server /usr/local/redis/redis-6379
cd /usr/local/redis/redis-6379
cp ../redis.conf redis-6379.conf
以上命令安装了三个Redis节点,它们分别监听在6379、6380和6381端口。我们将使用这三个节点来搭建Redis哨兵模式集群。
2.2 配置Redis集群
在搭建Redis哨兵模式集群之前,我们需要为每个Redis节点配置相应的配置文件。可以使用以下命令为每个Redis节点拷贝一个配置文件:
cp redis-6379.conf redis-6380.conf
cp redis-6379.conf redis-6381.conf
然后,可以使用vim编辑器打开每个配置文件,修改其中的配置项。以下是Redis集群中常用的一些配置项:
port:设置Redis监听的端口号。
bind:设置Redis监听的IP地址。
dir:设置Redis快照和AOF文件的存储目录。
cluster-enabled:启用Redis集群模式。
cluster-config-file:指定Redis集群配置文件的路径及名称。
cluster-node-timeout:设置Redis集群节点失联超时时间。
配置文件的修改完成后,需要使用以下命令启动每个Redis节点:
cd /usr/local/redis/redis-6379/
./redis-server redis-6379.conf
cd /usr/local/redis/redis-6380/
./redis-server redis-6380.conf
cd /usr/local/redis/redis-6381/
./redis-server redis-6381.conf
此时,我们已经成功地搭建了一个Redis集群,它包含三个节点。
2.3 启用Redis哨兵模式
Redis哨兵模式的作用是监控Redis集群中的各个节点,并在节点出现故障时,自动将故障的节点下线,并选择一个可用的节点作为主节点。
启用Redis哨兵模式需要在Redis集群的某个节点上运行一个哨兵进程。可以使用以下命令启动哨兵进程:
cd /usr/local/redis/redis-6379/
./redis-sentinel sentinel.conf
哨兵进程将在默认端口26379上监听哨兵请求。在其余节点上,需要修改配置文件中的sentinel.conf文件,以便它们能够让哨兵进程来监控自己。以下是一个典型的sentinel.conf文件的内容:
port 26379
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
该配置文件指定了哨兵进程需要监控的主节点,以及在节点失效后需要执行的操作。其中,down-after-milliseconds配置项设置故障节点的失效时间,failover-timeout表示故障转移的超时时间。
有了哨兵进程,我们就成功地启用了Redis哨兵模式,Redis集群具备了高可用性。
2.4 监控Redis集群
由于Redis集群中的节点数量较多,我们可能需要对它们进行一些基本的监控。Redis提供了redis-cli和redis-stat等工具来帮助我们监控Redis集群。以下是一些常用的命令:
redis-cli -p port info:查看Redis节点的状态。
redis-cli -p port cluster nodes:查看Redis集群中各个节点的状态。
redis-stat:实时监控Redis集群的状态。
除了使用这些工具外,我们还可以使用nagios等监控工具来监控Redis集群的运行状态。
2.5 总结
Redis哨兵模式提供了一种简单而有效的方式来实现Redis集群的高可用性。搭建Redis哨兵模式集群需要至少三个节点,其中一个节点需要启动哨兵进程。在配置文件中,需要指定哨兵进程需要监控的主节点,以及失效后需要执行的操作。Redis提供了redis-cli和redis-stat等工具来帮助我们监控Redis集群的状态。
当然,Redis的集群模式不止这一种,还有一种叫做Redis Cluster,支持多主节点,并提供了自动分片的功能。如果需要使用Redis Cluster,可以参考Redis的官方文档进行搭建和配置。