redis安装和搭建集群
- centOs7/8 yum安装
- 下面命令是安装老版本
- 也可以指定版本安装
- 安装完成后查看redis版本
- 修改redis配置文件
- 服务常用的操作conOs7/8
- 服务常用的操作conOs6.9
- 手动安装redis
- 配置自启动 编写启动脚本
- 内容如下:
- 设置文件权限
- 启动测试
- 注意:如果是服务先启动在修改的redis.conf需要重启服务
- 集群搭建
- 搭建集群需要6个节点实现三从三主,因此我们模拟6台机器
- 删除集群
- 添加节点进集群
- 主节点
- 从节点
- 分配槽位
centOs7/8 yum安装
下面命令是安装老版本
yum install redis
也可以指定版本安装
#安装仓库
yum install -y http://rpms.famillecollet.com/enterprise/remi-release-8.rpm
#查看仓库里面redis的版本
yum install -y http://rpms.famillecollet.com/enterprise/remi-release-8.rpm
#安装指定版本
yum --enablerepo=remi install redis-版本号 -y
如下:
yum --enablerepo=remi install redis-6.0.6 -y
我觉得两者没什么区别
安装完成后查看redis版本
redis-cli --version
或
redis-server --version
修改redis配置文件
#此命令用来查找redis配置文件的位置
find / -name "redis.conf"
#查找到路径后
vim /文件路径/redis.conf
#修改里面的一些内容如下:
注意文本可以用 /bind 快速查找内容
:set hlsearch 查找的文本高亮显示
:set nohlsearch 不高亮
按 i 进入编辑
bind 看下面的图片查找出ip复制过去就行
requirepass "" //密码可有可无随意就行
protected-mode no //保护模式默认是yes
修改完成 按Esc 退出编辑
:wq 保存并退出
:q 不保存
#完成后启动服务 命令如下:
systemctl start redis
服务器开机启动 命令如下:
systemctl enable redis
如果是centOs6.9
service start redis //启动服务
服务器开机启动 命令如下:
chkconfig redis on
#连接redis
redis-cli -h 192.168.0.11 -p 6379 //-h=bind这个的ip -p=端口
exit可以退出连接
服务常用的操作conOs7/8
// 服务状态
systemctl status redis
// 服务启动
systemctl start redis
// 服务停止
systemctl stop redis
// 服务重启
systemctl restart redis
服务常用的操作conOs6.9
// 服务状态
service redis status
// 服务启动
service redis start
// 服务停止
service redis stop
// 服务重启
service redis restart
到此 需要开放 6379 端口:
建议用宝塔操作方便简单
如果要使用命令如下:
firewall-cmd --zone=public --add-port=6379/tcp --permanent //开放6379端口
firewall-cmd --reload //刷新配置
注意:如果是云服务器则安全组也需放行6379端口
手动安装redis
#进入根目录
cd /
#创建文件夹
mkdir redis
#进入创建的文件夹
cd redis
#下载压缩包
wget https://download.redis.io/releases/redis-6.2.2.tar.gz
#解压
tar xzf redis-6.2.2.tar.gz
#进入
cd redis-6.2.2
#编译
make
注意:先修改redis.conf修改的内容上面有 多加一个
daemonize为yes //守护进程开启。
#启动服务
src/redis-server //此时这个窗口动不了,需要新开一个窗口
#连接redis
src/redis-cli
exit可以退出连接
配置自启动 编写启动脚本
vi /etc/init.d/redis
内容如下:
#!/bin/bash
#
# kconfig: 2345 10 90
# description: Start and Stop redis
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/opt/redis/redis-6.2.2/src/redis-server //自己安装的路径 redis-server 不需要变
REDIS_CLI=/opt/redis/redis-6.2.2/src/redis-cli //自己安装的路径 redis-cli 不需要变
PIDFILE=/var/run/redis_6379.pid
CONF="/opt/redis/redis-6.2.2/redis.conf" //自己安装的路径 redis.conf 不需要变
# AUTH="1234"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed."
else
echo "Starting Redis server..."
$EXEC $CONF
fi
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE exists, process is not running."
else
PID=$(cat $PIDFILE)
echo "Stopping..."
$REDIS_CLI -p $REDISPORT SHUTDOWN
sleep 2
while [ -x $PIDFILE ]
do
echo "Waiting for Redis to shutdown..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
exit 1
esac
写完后按 Esc 然后 :wq保存
设置文件权限
chmod 755 /etc/init.d/redis
启动测试
/etc/init.d/redis start
成功后会有下面信息:
Starting Redis server...
Redis is running...
然后就可以使用redis-cli测试了
注意:如果是服务先启动在修改的redis.conf需要重启服务
fuser -n tcp 6379 //查看进程id
kill 进程id //杀死进程
然后启动服务:
/etc/init.d/redis start**
集群搭建
搭建集群需要6个节点实现三从三主,因此我们模拟6台机器
#进入根目录
cd /
#创建文件夹
mkdir myredis
#进入目录
cd myredis
#创建多个文件夹
mkdir redis7000 redis7001 redis7002 redis7003 redis7004 redis7005
#复制一份redis配置文件要是不知道配置文件位置 使用 find / -name "redis.conf" 查看位置
cp /文件路径/redis.conf /myredis/redis7000/
#修改配置文件
vim /myredis/redis7000/redis.conf
修改内容如下:Esc退出编辑使用 /port 查找起来会比较快
port 7000
pidfile /var/run/redis_7000.pid //和端口统一比较好
dir /myredis/redis7000 //这个路径是我们上面创建的路径
cluster-enabled yes
cluster-config-file nodes-7000.conf //和端口统一比较好
cluster-node-timeout 5000
cluster-replica-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes
cluster-replica-no-failover no
#修改完后使用以下命令复制:
sed "s/7000/7001/g" /myredis/redis7000/redis.conf > /myredis/redis7001/redis.conf
sed "s/7000/7002/g" /myredis/redis7000/redis.conf > /myredis/redis7002/redis.conf
sed "s/7000/7003/g" /myredis/redis7000/redis.conf > /myredis/redis7003/redis.conf
......6个节点需要6次以此类推
sed "s/把7000/替换成7001/g" /myredis/redis7000/redis.conf > /myredis/redis7001/redis.conf
//解释一下,所以上面说和端口统一比较好,好处就在这不用一个一个改
现在启动6个服务:
/usr/bin/redis-server /myredis/redis7000/redis.conf
/usr/bin/redis-server /myredis/redis7001/redis.conf
/usr/bin/redis-server /myredis/redis7002/redis.conf
......以此类推6次
或者
redis-server /myredis/redis7000/redis.conf
redis-server /myredis/redis7001/redis.conf
redis-server /myredis/redis7002/redis.conf
......以此类推6次
然后就是搭建集群命令:
redis-cli --cluster create bind里面设置的ip:端口192.168.0.11:7001 192.168.0.11:7002
192.168.0.11:7003 192.168.0.11:7004 192.168.0.11:7005 --cluster-replicas 1
//redis-cli --cluster help 这个是帮助手册
出现如图那么恭喜你搭建好了
连接
redis-cli -h bind的ip -p 端口 -c //-c 代表集群模式连接
查看
cluster nodes
提示master表示主节点,slave表示从节点,myself表示当前连接的节点
如图所示便OK了
注意:如果redis客户端需要连接,则需要开放宝塔端口
7000,7001,7002,7003 等
还有+10000的端口比如:17000,17001 等 就是上面用到的端口都需要开放
如果是云服务器安全组也需要放行这些端口
删除集群
先将服务停止,查看服务
#查看服务
ps -ef | grep redis
#批量杀死进程id
ps -ef | grep redis | cut -c 9-17 | xargs kill //9-17 刚好是进程id
删除每个节点对应的集群文件
#最好先使用
find / -iname "node*.conf" //查看是不是直接需要删除的文件以免误删除
#批量删除
find / -iname "node*.conf" -delete
#删除 .rdb的文件
find / -iname "*.rdb"
#因为有多余文件所以只能一个一个删除
rm /myredis/redis7000/dump.rdb
添加节点进集群
主节点
redis-cli --cluster add-node 192.168.0.11:7006 192.168.0.11:7001
//redis-cli --cluster add-node 要添加的机器 192.168.0.11:7001 //因为他们已经是一个集群了所以也可以是192.168.0.11:7002
从节点
redis-cli --cluster add-node 192.168.0.11:7007 192.168.0.11:7001 --cluster-slave --cluster-master-id 主节点id
//redis-cli --cluster add-node 要添加的机器 集群里面的任意一个 --cluster-slave --cluster-master-id 刚刚加入的主节点的id,因为是一主一从
分配槽位
因为没有槽位他不会算在集群里面
redis-cli --cluster reshard 192.168.0.11:7006
回车就完成了