一、单机
1、下载
wget https://download.redis.io/releases/redis-6.2.9.tar.gz
2、解压
tar -zxf redis-6.2.9.tar.gz
3、进入目录执行命令:make
如果没有安装gcc :yum -y install gcc
4、修改配置redis.conf
# 后台启动daemonize yes# 关闭保护模式,开启的话,只有本机才可以访问 redisprotected - mode no# 需要注释掉 bind#bind 127.0.0.1 -::1
5、启动
src/redis-server redis.conf
6、验证是否启动
ps -ef | grep redis
7、连接客户端
src/redis-cli
8、
退出
redis
服务:
pkill redis-
server
kill
进程号
src/
redis-
cli shutdown
二、集群(分片)
使用三台机器搭建3个主从集群,统一安装在/usr/local/redis-cluster目录下
1、安装参考单机步骤
2、在安装目录下,以端口为名创建两个子目录(8001,8002),复制redis.conf配置文件到子目录
3、修改配置8001/redis.conf
# 后台启动daemonize yes# 关闭保护模式,开启的话,只有本机才可以访问 redisprotected - mode no# 需要注释掉 bind#bind 127.0.0.1 -::1# 分别对每个机器的端口号进行设置port 8001#把pid 进程号写入 pidfile 配置的文件,端口区分pidfile / var /run/redis_8001. pid#持久化文件存放目录dir /usr/local/redis-cluster/8001/#启动集群模式cluster- enabled yes#集群节点信息文件cluster ‐ config ‐ file nodes ‐ 8001 . confcluster-node-timeout 15000appendonly yes
4、可以把改好的8001下配置,复制到其他端口目录,将其中的8001修改为与所在目录一致,批量修改命令:
:%s/
源字符串
/
目的字符串
/
g
5、在其他
两台机器也需要做上面几步操作,第二台机器用8003和8004,第三台机器用8005和8006
6、
分别启动6
个
redis
实例,然后检查是否启动成功
/usr/local/redis-
cluster/redis-6.2.9/src/redis-
server /usr/local/redis-
cluster/800*/redis
.
conf
ps -ef |grep redis
7、redis-cli创建整个redis集群
/usr/local/redis-cluster/redis-6.2.9/src/redis-cli --cluster create --cluster-replicas 1 106.55.181.169:8001 175.178.11.123:8003 47.113.194.158:8005 106.55.181.169:8002 175.178.11.123:8004 47.113.194.158:8006
--cluster-replicas 1:指定集群中每个master的副本个数为1,节点列表中的前n个就是master,其它节点都是slave节点,随机分配到不同master
8、验证集群
/usr/local/redis-cluster/redis-6.2.9/src/redis-cli -p 8001 cluster nodes
9、连接客户端
/usr/local/redis-cluster/redis-6.2.9/src/redis-cli -c -p 8001
10、停止(
需要逐个进行关闭)
kill
进程号
/usr/local/redis-cluster/redis-6.2.9/src/redis-cli -p 8001 shutdown
--------------------------------------------------------------------
搭建Redis集群的过程中,执行到cluster create : … 的时候,发现程序发生阻塞,显示:
Waiting for the cluster to join
的字样,然后就无休无尽的等待…
遇到这种情况大部分是因为集群总线的端口没有开放!端口号上加10000
----------------------------------------------------------------------
zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录
解决:make MALLOC=libc