编译安装redis
下载linux安装包 redis-6.2.6.tar.gz
一、 解压安装包:
-
tar -zxv –f redis-6.2.6.tar.gz
二、 检查gcc是否安装:
-
gcc -v
三、 安装gcc
- 检查gcc是否安装:
gcc –v
- 安装gcc:
yum install gcc-c++ -y
- 升级gcc (redis6安装需要gcc版本大于5.3以上,否则安装会报错)
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
echo -e "\nsource /opt/rh/devtoolset-9/enable" >>/etc/profile
四、 检查tcl是否安装
- 是否安装:
tclsh
- 查看版本号:
info patchlevel
五、 安装tcl yum install tcl
六、 编译与安装(也可分开进行): make MALLOC=libc & make install
- 编译redis
- 直接用命令:
make
- 用命令:
make MALLOC=libc
(如果执行make命令报错:致命错误:jemalloc/jemalloc.h: 没有那个文件或目录,则需要在make指定分配器为libc。执行下面命令即可正常编译)
- 安装redis
用命令:make install PREFIX=/usr/local/redis
七、 拷贝可执行文件到新的文件夹
- 创建新文件夹:
mkdir /usr/local/redis
- Src下:
cp redis-server /usr/local/redis/
- Src下:
cp redis-benchmark /usr/local/redis/
- Src下:
cp redis-cli /usr/local/redis/
- 配置文件:
cp redis.conf /usr/local/redis/
(可以将所有配置文件单独放到一个目录)
八、 启动redis
-
./redis-server redis.conf
九、 建立软连接
-
ln -s /usr/redis/redis-server /usr/bin/redis-server
-
ln -s /usr/redis/redis-cli /usr/bin/redis-cli
搭建redis集群
一、 准备一个redis.conf文件,进行修改
- 端口:port 8001
- 保护模式:protected-mode no(no: 外部网络可以直接访问,yes 需配置bind ip或者设置访问密码)
- 存放数据的路径:dir /usr/local/redis-configs/node8001/
- 开启集群:cluster-enabled yes
- cluster-config-file nodes-8001.conf
- 集群超时时间:cluster-node-timeout 15000
- 数据同步appendonly yes
- 设置密码:requirepass 111111
- 主从复制带上密码:masterauth 111111
- 后台启动:daemonize yes
- 绑定ip地址:bind 0.0.0.0 ::1(所有IP都可以)
二、 启动redis
-
redis-server ./node8001/redis.conf
-
redis-server ./node8002/redis.conf
-
redis-server ./node8003/redis.conf
-
redis-server ./node8004/redis.conf
-
redis-server ./node8005/redis.conf
-
redis-server ./node8006/redis.conf
三、 查看集群命令
-
redis-cli --cluster help
四、 配置集群
-
redis-cli -a 111111 --cluster create 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003 127.0.0.1:8004 127.0.0.1:8005 127.0.0.1:8006 --cluster-replicas 1
五、 链接集群
-
redis-cli -a 111111 -c -p 8001
-c是智能客户端,例如 set a a时会自动跳到对应机器上面执行
六、其他命令
ps -ef |grep redis
mkdir node800{1,2,3,4,5,6}
redis-cli -c -p 8002 -a 111111 cluster info
redis-cli -c -p 8001 -a 111111 cluster nodes