配置文件基本设置

yum安装的话就在 /etc/redis.conf

  1. # 设置端口
  2. port 6379
  3. # 守护进程
  4. daemonize yes|no
  5. # 端口绑定 只能以这个ip访问 0.0.0.0就是都可以访问
  6. bind 127.0.0.1
  7. # 日志级别 开发环境设为verbose即可 生产环境设置为notice简化输出量降低IO频度
  8. loglevel debug|verbose|notice|warning
  9. # 日志记录文件名以端口号命名比较好
  10. logfile 端口.log
  11. # 同一时间最大客户端连接数 达到连接上限redis会关闭新连接 默认无限大
  12. maxclients 10
  13. # 客户端闲置等待最大时长,达到最大值关闭链接 设置为0表示关闭该功能(没什么事情可以不用该功能)
  14. timeout 300
  15. # 多服务器快捷配置 便于维护
  16. include /path/xxx.conf
  17. # 设置密码
  18. requirepass foobared

yum安装redis

直接yum 安装的redis 不是最新版本

yum install redis

如果要安装最新的redis,需要安装Remi的软件源,官网地址:http://rpms.famillecollet.com/

yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

然后可以使用下面的命令安装最新版本的redis:

yum --enablerepo=remi install redis

设置redis开机启动

systemctl enable redis

然后输入如下命令就可以启动redis了

redis-server /etc/redis.conf
/usr/bin/redis-cli

压缩包安装(推荐)

官网 https://redis.io/download 提供下载
以redis6.0版本为例
这里使用wget方式进行下载

wget https://download.redis.io/releases/redis-6.0.9.tar.gz
tar -zxvf redis-6.0.9.tar.gz
cd redis-6.0.9

编译环境

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
## 临时启用gcc9.1版本
scl enable devtoolset-9 bash
## 永久使用
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

执行make命令

为了方便管理,将Redis文件中的conf配置文件和常用命令移动到统一文件中

mkdir bin
mkdir etc
# 将配置文件移入etc目录
mv redis.conf etc/
# 进入src目录 将一些可执行文件移入bin目录
cd src/
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server ../bin/

配置一下环境变量

vim /etc/profile

export PATH=$PATH:/usr/local/redis/redis-6.0.9/bin

source /etc/profile

配置好了之后直接输入redis-server命令就启动了redis

配置一下redis.conf

# 设置端口
port 6379
# 守护进程开启
daemonize yes
# 端口绑定 只能以这个ip访问 0.0.0.0就是都可以访问
bind 0.0.0.0
# 设置密码
requirepass foobared

配置完,启动完,开放端口

iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

redis配置多实例

在学习阶段使用伪集群,这时就需要在一台服务器上配置多个实例

前提条件:已经安装好了一个实例并配置完成可以对外访问了

copy一份Redis配置文件并修改配置信息

cp /etc/redis.conf /etc/redis_6380.conf

在配置文件中修改端口号

port 6380

修改6380的pid文件位置

pidfile /var/run/redis_6380.pid

修改6380的日志文件位置

logfile /var/log/redis/redis_6380.log

修改6380的数据库文件位置

dbfilename dump_6380.rdb

最后启动6380端口的redis

redis-server /etc/redis_6380.conf

在linux命令行启动redis-cli时需指定端口,如6380端口

redis-cli -p 6380

配置Redis集群

集群至少需要六个Redis服务器,所以在此根据上面提到的方法将Redis.conf配置文件复制六份

除了更改上述的配置之外还需更改以下的配置

1.将# cluster-enabled yes的注解打开

# cluster-enabled yes

2.将集群的配置文件名改成与端口号对应,以端口6380为例
六个Redis六个节点,每个节点的cluster-config-file nodes-6380.conf配置文件名都需要不一样

cluster-config-file nodes-6380.conf

3.将此注释的井号删掉

cluster-node-timeout 15000

如果需要设置密码就需要修改所有Redis集群中的redis.conf文件加入 ,passwd123指具体的密码,每个节点的密码最好都设置成一样的

masterauth passwd123 
requirepass passwd123

4.然后启动六个Redis服务

redis-server /etc/redis_6380.conf

Redis5.0版本开始配置集群不需要使用ruby,所以六个节点的配置文件改好后直接在Linux输入以下命令即可(192.168.246.128是虚拟机安装的Linux服务器ip地址)

redis-cli --cluster create 192.168.246.128:6380 192.168.246.128:6381 192.168.246.128:6382 192.168.246.128:6383 192.168.246.128:6384 192.168.246.128:6385 --cluster-replicas 1

5.最终出现如图所示,表示集群配置成功
image.png

6.在服务器端测试时需按照集群的方式启动,指定ip和端口号

redis-cli -c -h 192.168.246.128 -p 6380

查询数据时就会重定向了
image.png

给Redis集群扩容

最初配的集群只拥有六个redis,可能会不够用,会需要进行扩容操作

配置多实例已经在上面写过,在此就不重复。直奔主题

1.添加节点

第一个ip:port 为需要添加的节点ip和端口,第二个ip:port为当前集群中的节点和端口

redis-cli --cluster add-node 10.70.10.184:7002 10.70.10.184:7000 -a 123456

2.分配哈希槽

注意:新添加的节点是没有哈希槽的,所以并不能正常存储数据,需要给新添加的节点分配哈希槽:哈希槽的配置不均匀,可能导致数据不同步;

redis-cli --cluster reshard  10.70.10.184:7002 -a 密码

输入要分配多少个哈希槽(数量)?比如我要分配1000个哈希槽

输入指定要分配哈希槽的节点ID(选择任意一个节点作为目标节点进行分配哈希槽);

选择需要分配的哈希槽来源,输入all

输入all 需要分配给目标节点的哈希槽来着当前集群的其他主节点(每个节点拿出的数量为集群自动决定)

是否继续执行建议的reshard计划

输入yes后,就会完成分配哈希槽: