redis安装部署,集群搭建

本文详细介绍了如何在CentOS7系统上安装Redis,包括关闭防火墙和SELinux,安装依赖,下载编译及安装Redis,配置后台运行,以及启动和测试Redis服务。接着,文章阐述了Redis的常用命令和数据操作。此外,还提供了集群环境的搭建步骤,包括配置文件的修改、复制和启动多个实例,最后通过redis-cli创建了一个集群,并展示了集群管理的一些命令。
摘要由CSDN通过智能技术生成

一. Redis 安装

检查环境

# 检查系统版本
[root@node01 ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

# 检查内核版本
[root@node01 ~]# uname -r
3.10.0-957.el7.x86_64

# 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

# 关闭selinux
[root@node01 redis]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
[root@node01 redis]# setenforce 0
setenforce: SELinux is disabled

#安装gcc模块
yum -y install gcc automake autoconf libtool make

下载Redis

  • https://redis.io/download/#redis-downloads
  • Redis版本 7.0.9
  • 服务器版本 Linux CentOS 7.6 64位

解压并安装

cd /opt/soft
# 下载
wget https://github.com/redis/redis/archive/7.0.9.tar.gz
# 解压
tar -zxvf 7.0.9.tar.gz
# 解压完查看目录,出现 redis-7.0.9 文件夹
ls
-rw-r--r--. 1 root root  3015419 320 00:26 7.0.9.tar.gz
drwxrwxr-x. 8 root root     4096 31 00:32 redis-7.0.9

# 进入文件夹
cd redis-7.0.9/
# 执行make命令进行编译
make
# 编译完成后,进入src目录
cd src
# 创建安装目录,我们先在/usr/local/下创建redis目录,将redis安装在这里
mkdir -p /usr/local/redis
# 在 src 目录下执行安装命令,并通过 PREFIX=/usr/local/redis 指定安装路径
make PREFIX=/usr/local/redis install
# 拷贝配置文件
mkdir /usr/local/redis/etc
cp ../redis.conf /usr/local/redis/etc/

# 默认情况,Redis不是在后台运行,我们需要把redis放在后台运行
vim /usr/local/redis/etc/redis.conf #将daemonize的值改为yes
# 启动redis 测试是否安装成功
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

# 启动一个客户端测试
/usr/local/redis/bin/redis-cli
set hello world
get hello

# 停止redis实例
/usr/local/redis/bin/redis-cli shutdown
# 或者
pkill redis-server

# 如果需要让redis开机自启,做如下配置
vim /etc/rc.local
#加入
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

# 按需修改配置文件
vi /usr/local/redis/etc/redis.conf
# 按需修改以下属性
# daemonize yes # 后台启动
# bind # 注释掉 bind 行,允许其他节点连接,或者按需指定允许连接的节点
# protected-mode no # 关闭保护模式,允许其他节点使用
# /usr/local/redis/bin目录下的几个文件
  redis-benchmark:redis性能测试工具
  redis-check-aof:检查aof日志的工具
  redis-check-dump:检查rdb日志的工具
  redis-cli:连接用的客户端
  redis-server:redis服务进程

# 连接操作相关的命令
默认直接连接 远程连接-h 192.168.1.20 -p 6379
ping:测试连接是否存活如果正常会返回pong
echo:打印
select:切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值
quit:关闭连接(connection)
auth:简单密码认证
服务端相关命令

time:返回当前服务器时间
client list: 返回所有连接到服务器的客户端信息和统计数据 参见http://redisdoc.com/server/client_list.html
client kill ip:port:关闭地址为 ip:port 的客户端
save:将数据同步保存到磁盘
bgsave:将数据异步保存到磁盘
lastsave:返回上次成功将数据保存到磁盘的Unix时戳
shundown:将数据同步保存到磁盘,然后关闭服务
info:提供服务器的信息和统计
config resetstat:重置info命令中的某些统计数据
config get:获取配置文件信息
config set:动态地调整 Redis 服务器的配置(configuration)而无须重启,可以修改的配置参数可以使用命令 CONFIG GET * 来列出
config rewrite:Redis 服务器时所指定的 redis.conf 文件进行改写
monitor:实时转储收到的请求
slaveof:改变复制策略设置

# 发布订阅相关命令
psubscribe:订阅一个或多个符合给定模式的频道 例如psubscribe news.* tweet.*
publish:将信息 message 发送到指定的频道 channel 例如publish msg “good morning”
pubsub channels:列出当前的活跃频道 例如PUBSUB CHANNELS news.i*
pubsub numsub:返回给定频道的订阅者数量 例如PUBSUB NUMSUB news.it news.internet news.sport news.music
pubsub numpat:返回客户端订阅的所有模式的数量总和
punsubscribe:指示客户端退订所有给定模式。
subscribe:订阅给定的一个或多个频道的信息。例如 subscribe msg chat_room
unsubscribe:指示客户端退订给定的频道。

# 对KEY操作的命令
exists(key):确认一个key是否存在
del(key):删除一个key
type(key):返回值的类型
keys(pattern):返回满足给定pattern的所有key
randomkey:随机返回key空间的一个
keyrename(oldname, newname):重命名key
dbsize:返回当前数据库中key的数目
expire:设定一个key的活动时间(s)
ttl:获得一个key的活动时间
move(key, dbindex):移动当前数据库中的key到dbindex数据库
flushdb:删除当前选择数据库中的所有key
flushall:删除所有数据库中的所有key

# 对String操作的命令
set(key, value):给数据库中名称为key的string赋予值value
get(key):返回数据库中名称为key的string的value
getset(key, value):给名称为key的string赋予上一次的value
mget(key1, key2,…, key N):返回库中多个string的value
setnx(key, value):添加string,名称为key,值为value
setex(key, time, value):向库中添加string,设定过期时间time
mset(key N, value N):批量设置多个string的值
msetnx(key N, value N):如果所有名称为key i的string都不存在
incr(key):名称为key的string增1操作
incrby(key, integer):名称为key的string增加integer
decr(key):名称为key的string减1操作
decrby(key, integer):名称为key的string减少integer
append(key, value):名称为key的string的值附加value
substr(key, start, end):返回名称为key的string的value的子串

# 对List操作的命令
rpush(key, value):在名称为key的list尾添加一个值为value的元素
lpush(key, value):在名称为key的list头添加一个值为value的 元素
llen(key):返回名称为key的list的长度
lrange(key, start, end):返回名称为key的list中start至end之间的元素
ltrim(key, start, end):截取名称为key的list
lindex(key, index):返回名称为key的list中index位置的元素
lset(key, index, value):给名称为key的list中index位置的元素赋值
lrem(key, count, value):删除count个key的list中值为value的元素
lpop(key):返回并删除名称为key的list中的首元素
rpop(key):返回并删除名称为key的list中的尾元素
blpop(key1, key2,… key N, timeout):lpop命令的block版本。
brpop(key1, key2,… key N, timeout):rpop的block版本。
rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部

#对Set操作的命令
sadd(key, member):向名称为key的set中添加元素member
srem(key, member) :删除名称为key的set中的元素member
spop(key) :随机返回并删除名称为key的set中一个元素
smove(srckey, dstkey, member) :移到集合元素
scard(key) :返回名称为key的set的基数
sismember(key, member) :member是否是名称为key的set的元素
sinter(key1, key2,…key N) :求交集
sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合
sunion(key1, (keys)) :求并集
sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合
sdiff(key1, (keys)) :求差集
sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合
smembers(key) :返回名称为key的set的所有元素
srandmember(key) :随机返回名称为key的set的一个元素

#对Hash操作的命令
hset(key, field, value):向名称为key的hash中添加元素field
hget(key, field):返回名称为key的hash中field对应的value
hmget(key, (fields)):返回名称为key的hash中field i对应的value
hmset(key, (fields)):向名称为key的hash中添加元素field
hincrby(key, field, integer):将名称为key的hash中field的value增加integer
hexists(key, field):名称为key的hash中是否存在键为field的域
hdel(key, field):删除名称为key的hash中键为field的域
hlen(key):返回名称为key的hash中元素个数
hkeys(key):返回名称为key的hash中所有键
hvals(key):返回名称为key的hash中所有键对应的value
hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value

二.Cluster集群环境搭建

环境准备

准备三台服务器
192.168.43.80 6379 6380
192.168.43.81 6379 6380
192.168.43.82 6379 6380

创建redis实例配置文件夹

mkdir -p /usr/local/redis/redis-cluster/6379 /usr/local/redis/redis-cluster/6380

拷贝配置文件

cp /opt/redis.conf /usr/local/redis/redis-cluster/6379

修改redis.conf文件以下内容

vi /usr/local/redis/redis-cluster/6379/redis.conf 
port 6379
daemonize yes
pidfile "/var/run/redis_cluster_6379.pid"
#指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据
dir /usr/local/redis/redis-cluster/6379/
#启动集群模式
cluster-enabled yes
#集群节点信息文件,这里63xx最好和port对应上
cluster-config-file nodes-6379.conf
# 节点离线的超时时间
cluster-node-timeout 5000
#去掉bind绑定访问ip信息
#bind 127.0.0.1
#关闭保护模式
protected-mode no
#启动AOF文件
appendonly yes
#如果要设置密码需要增加如下配置:
#设置redis访问密码
#requirepass root123
#设置集群节点间访问密码,跟上面一致
#masterauth root123

cp redis.conf /usr/local/redis/redis-cluster/6380
vi /opt/redis.conf /usr/local/redis/redis-cluster/6380

#将6379修改为6380:
cp /usr/local/redis/redis-cluster/8001/redis.conf /usr/local/redis/redis-
cluster/6380
# 批量修改字符串
:%s/6379/6380/g

将本机机器上的文件拷贝到另外两台机器上

# 第二台机器
scp /usr1/redis/redis-cluster/6379/redis.conf
root@192.168.43.81:/usr1/redis/redis-cluster/6379/
scp /usr1/redis/redis-cluster/6380/redis.conf
root@192.168.43.81:/usr1/redis/redis-cluster/6380/
# 第三台机器
scp /usr1/redis/redis-cluster/6379/redis.conf
root@192.168.43.82:/usr1/redis/redis-cluster/6379/
scp /usr1/redis/redis-cluster/6380/redis.conf
root@192.168.43.82:/usr1/redis/redis-cluster/6380/

分别启动6个实例

redis-server /usr/local/redis/redis-cluster/6379/redis.conf
redis-server /usr/local/redis/redis-cluster/6380/redis.conf

检查是否启动成功

ps -ef |grep redis

使用redis-cli创建整个redis集群

/usr/local/redis/bin/redis-cli -a redis-pw --cluster create --cluster-replicas 1 \
192.168.43.80:6379 192.168.43.80:6380 \
192.168.43.81:6379 192.168.43.81:6380 \
192.168.43.82:6379 192.168.43.82:6380

redis-cli --cluster help
参数:
create:创建一个集群环境host1:port1 ... hostN:portN
call:可以执行redis命令
add-node:将一个节点添加到集群里,第一个参数为新节点的ip:port,第二个参数为
集群中
任意一个已经存在的节点的ip:port
del-node:移除一个节点
reshard:重新分片
check:检查集群状态

验证集群

  • 连接任意一个客户端
/usr/local/redisd/src/redis-cli -a redis-pw -c -h localhost -p 6379
参数:
-a 表示服务端密码
-c 表示集群模式
-h 指定ip地址
-p 表示端口号

查看集群的信息

cluster info

查看节点信息

cluster-nodes

杀死master节点

lsof -i:6379
kill -9 pid
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值