Linux部署redis,并设置开机自启

2 篇文章 0 订阅

目录

一、单台

1.下载安装包,解压,重命名,安装redist需要安装支持包

2. 查看gcc版本,进入redis目录

3.编译

4.编译产更后,修改配置文件

5.编译后默认/usr/local/bin下,启动redis

6.登录

7. 添加为服务:

 二、linux集群(一台虚机安装6个节点)

1. 根据以上步骤安装redis

2. 这里介绍一台虚机安装6个节点的redis集群模式

3. 安装ruby(对于低版本的redis需要安装ruby,redis5.0以上版本不需要安装)

4 . 需支持redis的通信,需要redis相关包

5. 分别启动redis

6. 启动集群:

7. 执行完成后,会出现六个节点的主从分配,之后需输入yes,执行完成

8. 注意


一、单台

1.下载安装包,解压,重命名,安装redist需要安装支持包

yum install gcc-c++ -y

2. 查看gcc版本,进入redis目录

 gcc -v (查看是否需要更新gcc版本,gcc版本对不上,可能会出现编译异常)

3.编译

make && make install 
(make && make install PREFIX=/usr/local/apps/redis/redis-5.0.9)  
(bin目录会自动创建 )
--->1).&&连接两个命令,前面命令的返回值决定是否执行后面的命令
--->2).PREFIX(注意:大写)指定安装目录,若目录不存在,则自动创建

4.编译产更后,修改配置文件

# 默认情况下,redis不是在后台模式运行的,如果需要在后台进程运行,把该项的值更改为yes,默认为no
daemonize no 改为 yes (代表后台启动)

# 指定redis监听端口,默认为6379
port 6379

# 指定redis只接收来自于该IP地址的请求,如果不进行设置,默认将处理所有请求,我们是在生产环境下,所以这是必备项
bind 0.0.0.0

# 设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接
timeout 2

# 设置最大同时连接客户端数量,0表示没有限制,一旦达到这个限制,Redis会关闭所有新连接并发送错误达到最大用户数上限。
maxclients 1024

#如果不希望丢掉任何一条数据的话就该用纯累加模式:一旦开启这个模式,Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件。
appendonly yes

# 设置纯累加文件名字及保存路径,默认:"appendonly.aof"
appendfilename appendonly.aof

pidfile "/var/run/redis_6379.pid"
#日志目录
logfile "/usr/local/redis/redis-5.0.9/logs/redis-6379.log"

#密码
requirepass redis000000

5.编译后默认/usr/local/bin下,启动redis

./redis-server  /usr/local/apps/redis/redis-5.0.9/redis.conf 启动是指定配置文件

6.登录

./redis-cli -h 127.0.0.1 -p 6379 

分配器allocator, 如果有MALLOC  这个环境变量, 会有用这个环境变量的 去建立Redis。
而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problems 比libc。
但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数,运行如下命令:

make MALLOC=libc

7. 添加为服务:


reids目录下:

cd utils
cp redis_init_script /etc/rc.d/init.d/redis

下图并无&,闹错了,修改的路径根据自己redis安装路径修改

 如果redis设置密码,需要修改脚本

添加

REQUIREPASS=lanlinker789***
$CLIEXEC -a $REQUIREPASS -p $REDISPORT shutdown 2>/dev/null

-a $REQUIREPASS:密码
2>/dev/null:去除Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.错误

问题原因:这串输出并不是普通输出,shell的标准输出包含两种,1(标准输出)2(标准错误)我们的命令,即包含1也包含2,2即是我们想要去除的提示。

#chkconfig 2345 10 90  添加对chkconfig的支持,2345表示服务允许启动的级别是2,3,4,5;10和90用于设置服务的启动顺序和关闭顺序。数值小的先执行,数值大的后执行。取值范围在0~99.
EXEC和CLIEXEC分别表示redis服务器后端启动和前端启动的应用程序路径。CONF指的是程序配置文件的路径,启动文件上方添加:

添加
#chkconfig: 2345 90 10
#description:auto_run
chkconfig --add redis  添加服务
chkconfig --list  列出所有服务
chkconfig redis on  开启自启
service redis start
service redis stop

 二、linux集群(一台虚机安装6个节点)

1. 根据以上步骤安装redis

2. 这里介绍一台虚机安装6个节点的redis集群模式

六个节点部署不同的虚机,安装步骤相同

创建redis_cluster目录

cd /usr/local/redis

mkdir redis_cluster

创建redis节点目录

mkdir -p redis{7001..7006}

分别在节点目录创建conf配置文件目录、data数据目录,logs日志目录

在之前安装好的redis拷贝配置文件redis.conf到对应的节点目录

分别修改配置文件

对应的端口:7001、7002、7003、7004、7005、7006 及数据、日志存放目录

打开cluster-enabled yes

配置文件

# 默认情况下,redis不是在后台模式运行的,如果需要在后台进程运行,把该项的值更改为yes,默认为no
daemonize no 改为 yes (代表后台启动)

# 指定redis监听端口,默认为6379
port 6379

# 指定redis只接收来自于该IP地址的请求,如果不进行设置,默认将处理所有请求,我们是在生产环境下,所以这是必备项
bind 0.0.0.0

# 设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接
timeout 2

# 设置最大同时连接客户端数量,0表示没有限制,一旦达到这个限制,Redis会关闭所有新连接并发送错误达到最大用户数上限。
maxclients 1024

#如果不希望丢掉任何一条数据的话就该用纯累加模式:一旦开启这个模式,Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件。
appendonly yes

# 设置纯累加文件名字及保存路径,默认:"appendonly.aof"
appendfilename appendonly.aof

pidfile "/var/run/redis_6379.pid"
#日志目录
logfile "/usr/local/redis/redis-5.0.9/logs/redis-6379.log"

#配置主机节点密码
masterauth redis000000

#密码
requirepass redis000000

#开启集群模式
cluster-enabled yes

3. 安装ruby(对于低版本的redis需要安装ruby,redis5.0以上版本不需要安装)

清理已安装过的 ruby
yum erase ruby ruby-libs ruby-mode ruby-rdoc ruby-irb ruby-ri ruby-docs

手动下载 (下载高版本)
https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.7.tar.gz

解压,进入目录
执行命令:./configure
执行命令:make && make install

配置环境变量
vim /etc/profile

#redis-ruby
export PATH=/usr/local/ruby-2.2.7/bin:$PATH

source /etc/profile

查看ruby版本号
ruby -v 

4 . 需支持redis的通信,需要redis相关包

命令:gem install redis(可手动下载redis-3.3.5.gem)

5. 分别启动redis

启动脚本:

#!/bin/sh
/usr/local/apps/redis/redis-5.0.9/bin/redis-server /usr/local/apps/redis/redis_cluster/redis-7001/conf/redis.conf

/usr/local/apps/redis/redis-5.0.9/bin/redis-server /usr/local/apps/redis/redis_cluster/redis-7002/conf/redis.conf

/usr/local/apps/redis/redis-5.0.9/bin/redis-server /usr/local/apps/redis/redis_cluster/redis-7003/conf/redis.conf

/usr/local/apps/redis/redis-5.0.9/bin/redis-server /usr/local/apps/redis/redis_cluster/redis-7004/conf/redis.conf

/usr/local/apps/redis/redis-5.0.9/bin/redis-server /usr/local/apps/redis/redis_cluster/redis-7005/conf/redis.conf

/usr/local/apps/redis/redis-5.0.9/bin/redis-server /usr/local/apps/redis/redis_cluster/redis-7006/conf/redis.conf

6. 启动集群:

这个地方一定要注意 Redis 官方提供了 redis-trib.rb 这个工具但是 在redis 5.0以后的版本是不支持的,redis 5.0之后用redis-cli

1. 无密码
./redis-cli --cluster create 192.168.1.26:7001  192.168.1.26:7002 192.168.1.26:7003 192.168.1.26:7004 192.168.1.26:7005 192.168.1.26:7006  --cluster-replicas 1

2. 有密码,需添加 -a 密码
./redis-cli --cluster create 10.252.252.37:7001  10.252.252.37:7002 10.252.252.37:7003 10.252.252.37:7004 10.252.252.37:7005 10.252.252.37:7006 -a redis123456***  --cluster-replicas 1 

7. 执行完成后,会出现六个节点的主从分配,之后需输入yes,执行完成

>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.1.26:7001 to 192.168.1.26:7006
Adding replica 192.168.1.26:7002 to 192.168.1.26:7005
Adding replica 192.168.1.26:7004 to 192.168.1.26:7003
M: 80c80a3f3e33872c047a8328ad579b9bea001ad8 192.168.1.26:7001
   slots:[0-5460] (5461 slots) master
S: b4d3eb411a7355d4767c6c23b4df69fa183ef8bc 192.168.1.26:7006
   replicates 6788453ee9a8d7f72b1d45a9093838efd0e501f1
M: 4d74ec66e898bf09006dac86d4928f9fad81f373 192.168.1.26:7002
   slots:[5461-10922] (5462 slots) master
S: b6331cbc986794237c83ed2d5c30777c1551546e 192.168.1.26:7005
   replicates 80c80a3f3e33872c047a8328ad579b9bea001ad8
M: 6788453ee9a8d7f72b1d45a9093838efd0e501f1 192.168.1.26:7004
   slots:[10923-16383] (5461 slots) master
S: 277daeb8660d5273b7c3e05c263f861ed5f17b92 192.168.1.26:7003
   replicates 4d74ec66e898bf09006dac86d4928f9fad81f373
Can I set the above configuration? (type 'yes' to accept): yes       #输入yes,接受上面配置
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster

8. 注意

如果是在不同服务器部署,需要防火墙打开对应的端口,否则执行启动集群命令后,Can I set the above configuration? (type 'yes' to accept): yes  后会一直加载。

1. 各个节点对应redis的端口
2. 节点之间的通信端口

6台redis两两之间并不是独立的,每个节点都会通过集群总线,与其他的节点进行通信。通讯时使用特殊的端口号,即对外服务端口号加10000。例如如果某个node的端口号是7001,那么它与其它nodes通信的端口号是17001。nodes之间的通信采用特殊的二进制协议。

redis端口:
firewall-cmd --zone=public --add-port=7001/tcp --permanent
firewall-cmd --zone=public --add-port=7002/tcp --permanent
firewall-cmd --zone=public --add-port=7003/tcp --permanent
firewall-cmd --zone=public --add-port=7004/tcp --permanent
firewall-cmd --zone=public --add-port=7005/tcp --permanent
firewall-cmd --zone=public --add-port=7006/tcp --permanent

redis通信端口
firewall-cmd --zone=public --add-port=17001/tcp --permanent
firewall-cmd --zone=public --add-port=17002/tcp --permanent
firewall-cmd --zone=public --add-port=17003/tcp --permanent
firewall-cmd --zone=public --add-port=17004/tcp --permanent
firewall-cmd --zone=public --add-port=17005/tcp --permanent
firewall-cmd --zone=public --add-port=17006/tcp --permanent

firewall-cmd --reload

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值