一、单实例安装

1、安装依赖

yum install gcc-c++
yum install -y tcl
yum install wget
yum install vim

2、获取安装文件并解压安装

wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar xzf redis-3.2.8.tar.gz
cd redis-3.2.8
make
make install

3、修改配置文件

vi redis.conf
#1.设置为后台运行
daemonize no
改为
daemonize yes
#2.修改默认端口
port 6379
改为
port 7963
#3.修改pidfile
pidfile /var/run/redis_6379.pid
改为

pidfile /var/run/redis_7963.pid
#4.设置日志级别
loglevel notice
改为
loglevel notice
#5.修改日志文件路径
logfile ""
改为
logfile "/var/log/redis_7963.log"

复制配置文件到常用目录
mkdir -p /etc/redis/
cp redis.conf /etc/redis/redis_7963.conf

4、启动redis并连接测试

cd /etc/redis/
/usr/local/bin/redis-server redis_7963.conf

/usr/local/bin/redis-cli -p 7963
127.0.0.1:7963> keys *
(empty list or set)
127.0.0.1:7963> set test "hello redis"
OK
127.0.0.1:7963> keys *
1) "test"
127.0.0.1:7963> get test
"hello redis"
127.0.0.1:7963> del test
(integer) 1
127.0.0.1:7963> keys *
(empty list or set)
127.0.0.1:7963> exit

5、关闭Redis

#方案一:
/usr/local/bin/redis-cli -p 7963 shutdown
#方案二:
netstat -lntp | grep 7963 #查看端口是否被占用
ps -ef|grep redis
   root 4726 1 0 10:33 ? 00:00:00 /usr/local/bin/redis-server 127.0.0.1:7963
   root 4731 1253 0 10:40 pts/0 00:00:00 grep redis

kill -9 4726

#备注说明:由于Redis可以接收并处理SIGTERM信号,所以直接使用kill -9 PID,是可以安全结束进程的;
另外:有两个信号可以停止进程,分别为:SIGTERM和SIGKILL
SIGTERM用于提醒进程关闭,进程可以在关闭之前,结束打开的文件记录和完成正在进行的任务,如果有些任务不能中断,则可以忽略SIGTERM信号;
SIGKILL则是强制关闭进程,即表示不管进程在做什么,应该马上关闭

6、设置开机启动

echo "/usr/local/bin/redis-server /etc/redis/redis_7963.conf" >> /etc/rc.local
#注意:开机启动需要配置在rc.local中,而/etc/profile文件需要有用户登录才会被执行

二、单机多实例安装Cluster

1、创建集群需要的节点文件夹

mkdir -p /data/cluster/7000
mkdir -p /data/cluster/7001
mkdir -p /data/cluster/7003
mkdir -p /data/cluster/7004
mkdir -p /data/cluster/7002
mkdir -p /data/cluster/7005

2、创建配置文件

cd /data/cluster/7000

#复制配置文件
cp /etc/redis/redis_7963.conf redis.conf

#修改配置文件
vim redis.conf

port 7000 #设置端口号
daemonize yes #设置为后台运行
cluster-enabled yes #开启集群模式
cluster-config-file nodes.conf #节点配置文件路径
cluster-node-timeout 5000 #节点超时时间,单位:毫秒
appendonly yes #开启AOF持久化,防止数据在硬盘丢失

#复制配置文件,并修改端口号
cp redis.conf ../7001
cp redis.conf ../7002
cp redis.conf ../7003
cp redis.conf ../7004
cp redis.conf ../7005
vim ../7001/redis.conf
vim ../7002/redis.conf
vim ../7003/redis.conf
vim ../7004/redis.conf
vim ../7005/redis.conf

3、启动集群节点

redis-server redis.conf
cd /data/cluster/7001
redis-server redis.conf
cd /data/cluster/7002
redis-server redis.conf
cd /data/cluster/7003
redis-server redis.conf
cd /data/cluster/7004
redis-server redis.conf
cd /data/cluster/7005
redis-server redis.conf

#查看redis启动进程
ps -ef|grep redis
root      1170     1  0 11:05 ?        00:00:32 /usr/local/bin/redis-server 127.0.0.1:7963
root      1311     1  0 16:16 ?        00:00:00 redis-server 127.0.0.1:7000 [cluster]
root      1315     1  0 16:16 ?        00:00:00 redis-server 127.0.0.1:7001 [cluster]
root      1319     1  0 16:16 ?        00:00:00 redis-server 127.0.0.1:7002 [cluster]
root      1323     1  0 16:16 ?        00:00:00 redis-server 127.0.0.1:7003 [cluster]
root      1327     1  0 16:16 ?        00:00:00 redis-server 127.0.0.1:7004 [cluster]
root      1331     1  0 16:16 ?        00:00:00 redis-server 127.0.0.1:7005 [cluster]
root      1338  1202  0 16:17 pts/0    00:00:00 grep redis

4、安装依赖并且创建集群

#安装ruby、rubygems
yum install ruby rubygems -y

#安装gem-redis
cd /opt/
wget https://rubygems.org/downloads/redis-3.3.3.gem
gem install -l redis-3.3.3.gem

#复制管理程序
cp redis-3.2.8/src/redis-trib.rb /usr/local/bin/redis-trib

#创建集群
redis-trib create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7000
127.0.0.1:7001
127.0.0.1:7002
Adding replica 127.0.0.1:7003 to 127.0.0.1:7000
Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
M: af244fe9be7256039357fbf463f8f689544323d1 127.0.0.1:7000
   slots:0-5460 (5461 slots) master
M: 88e426f2501bea4bc17a2a458beb9c57a7321157 127.0.0.1:7001
   slots:5461-10922 (5462 slots) master
M: 79dd52da7a66cec1508b2ab75a439a79fa8678bc 127.0.0.1:7002
   slots:10923-16383 (5461 slots) master
S: abfb133576837b9c7dfcfadbe8e2fca47d14a41d 127.0.0.1:7003
   replicates af244fe9be7256039357fbf463f8f689544323d1
S: e1d18594b8b322c264757b7b396a70bcba913968 127.0.0.1:7004
   replicates 88e426f2501bea4bc17a2a458beb9c57a7321157
S: f2bb24dcc4eed871bc4ab7e56eebce9e72e37f44 127.0.0.1:7005
   replicates 79dd52da7a66cec1508b2ab75a439a79fa8678bc
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
Waiting for the cluster to join..
>>> Performing Cluster Check (using node 127.0.0.1:7000)
M: af244fe9be7256039357fbf463f8f689544323d1 127.0.0.1:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: 88e426f2501bea4bc17a2a458beb9c57a7321157 127.0.0.1:7001
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: f2bb24dcc4eed871bc4ab7e56eebce9e72e37f44 127.0.0.1:7005
   slots: (0 slots) slave
   replicates 79dd52da7a66cec1508b2ab75a439a79fa8678bc
S: abfb133576837b9c7dfcfadbe8e2fca47d14a41d 127.0.0.1:7003
   slots: (0 slots) slave
   replicates af244fe9be7256039357fbf463f8f689544323d1
M: 79dd52da7a66cec1508b2ab75a439a79fa8678bc 127.0.0.1:7002
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: e1d18594b8b322c264757b7b396a70bcba913968 127.0.0.1:7004
   slots: (0 slots) slave
   replicates 88e426f2501bea4bc17a2a458beb9c57a7321157
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.


#检查集群状态
redis-cli -p 7000 cluster nodes 

88e426f2501bea4bc17a2a458beb9c57a7321157 127.0.0.1:7001 master - 0 1490776018194 2 connected 5461-10922
f2bb24dcc4eed871bc4ab7e56eebce9e72e37f44 127.0.0.1:7005 slave 79dd52da7a66cec1508b2ab75a439a79fa8678bc 0 1490776020201 6 connected
abfb133576837b9c7dfcfadbe8e2fca47d14a41d 127.0.0.1:7003 slave af244fe9be7256039357fbf463f8f689544323d1 0 1490776019197 4 connected
79dd52da7a66cec1508b2ab75a439a79fa8678bc 127.0.0.1:7002 master - 0 1490776018696 3 connected 10923-16383
e1d18594b8b322c264757b7b396a70bcba913968 127.0.0.1:7004 slave 88e426f2501bea4bc17a2a458beb9c57a7321157 0 1490776019699 5 connected
af244fe9be7256039357fbf463f8f689544323d1 127.0.0.1:7000 myself,master - 0 0 1 connected 0-5460

5、测试集群节点写入

redis-cli -p 7000
127.0.0.1:7000> keys *
(empty list or set)
127.0.0.1:7000> set test "hello redis cluster"
(error) MOVED 6918 127.0.0.1:7001
127.0.0.1:7000> exit

#7000,写入失败,换为7001进行写入测试
redis-cli -p 7001
127.0.0.1:7001> set test "hello redis cluster"
OK
127.0.0.1:7001> keys *
1) "test"
127.0.0.1:7001> get test
"hello redis cluster"
127.0.0.1:7001> exit

6、测试集群节点故障

ps -ef|grep redis
root      1170     1  0 11:05 ?        00:00:33 /usr/local/bin/redis-server 127.0.0.1:7963
root      1311     1  0 16:16 ?        00:00:01 redis-server 127.0.0.1:7000 [cluster]
root      1315     1  0 16:16 ?        00:00:01 redis-server 127.0.0.1:7001 [cluster]
root      1319     1  0 16:16 ?        00:00:00 redis-server 127.0.0.1:7002 [cluster]
root      1323     1  0 16:16 ?        00:00:01 redis-server 127.0.0.1:7003 [cluster]
root      1327     1  0 16:16 ?        00:00:00 redis-server 127.0.0.1:7004 [cluster]
root      1331     1  0 16:16 ?        00:00:00 redis-server 127.0.0.1:7005 [cluster]
root      1374  1202  0 16:28 pts/0    00:00:00 grep redis

kill 1311

ps -ef|grep redis
root      1170     1  0 11:05 ?        00:00:33 /usr/local/bin/redis-server 127.0.0.1:7963
root      1315     1  0 16:16 ?        00:00:01 redis-server 127.0.0.1:7001 [cluster]
root      1319     1  0 16:16 ?        00:00:01 redis-server 127.0.0.1:7002 [cluster]
root      1323     1  0 16:16 ?        00:00:01 redis-server 127.0.0.1:7003 [cluster]
root      1327     1  0 16:16 ?        00:00:01 redis-server 127.0.0.1:7004 [cluster]
root      1331     1  0 16:16 ?        00:00:00 redis-server 127.0.0.1:7005 [cluster]
root      1376  1202  0 16:29 pts/0    00:00:00 grep redis

#测试是否能连接到7000
redis-cli -p 7000 cluster nodes
Could not connect to Redis at 127.0.0.1:7000: Connection refused

#7000无法连接,改为连接到7001
redis-cli -p 7001 cluster nodes
f2bb24dcc4eed871bc4ab7e56eebce9e72e37f44 127.0.0.1:7005 slave 79dd52da7a66cec1508b2ab75a439a79fa8678bc 0 1490776164137 3 connected
af244fe9be7256039357fbf463f8f689544323d1 127.0.0.1:7000 master,fail - 1490776153654 1490776152049 1 disconnected
79dd52da7a66cec1508b2ab75a439a79fa8678bc 127.0.0.1:7002 master - 0 1490776164137 3 connected 10923-16383
e1d18594b8b322c264757b7b396a70bcba913968 127.0.0.1:7004 slave 88e426f2501bea4bc17a2a458beb9c57a7321157 0 1490776162122 2 connected
abfb133576837b9c7dfcfadbe8e2fca47d14a41d 127.0.0.1:7003 master - 0 1490776163633 7 connected 0-5460
88e426f2501bea4bc17a2a458beb9c57a7321157 127.0.0.1:7001 myself,master - 0 0 2 connected 5461-10922

#集群节点中,7000连接已丢失,再次尝试读取及写入
127.0.0.1:7001> keys *
1) "test"
127.0.0.1:7001> get test
"hello redis cluster"
127.0.0.1:7001> set test1 "kill a node,try write"
(error) MOVED 4768 127.0.0.1:7003
127.0.0.1:7001> exit

#从7001中写入 key=test1失败,改为从7003写入测试
redis-cli -p 7003
127.0.0.1:7003> set test1 "kill a node,try write"
OK
127.0.0.1:7003> keys *
1) "test1"
127.0.0.1:7003> get test
(error) MOVED 6918 127.0.0.1:7001
127.0.0.1:7003> get test1
"kill a node,try write"
127.0.0.1:7003> exit

#恢复节点
cd /data/cluster/7000
redis-server redis.conf

#查看集群节点状态
redis-cli -p 7000 cluster nodes
af244fe9be7256039357fbf463f8f689544323d1 127.0.0.1:7000 myself,slave abfb133576837b9c7dfcfadbe8e2fca47d14a41d 0 0 1 connected
abfb133576837b9c7dfcfadbe8e2fca47d14a41d 127.0.0.1:7003 master - 0 1490778603081 7 connected 0-5460
e1d18594b8b322c264757b7b396a70bcba913968 127.0.0.1:7004 slave 88e426f2501bea4bc17a2a458beb9c57a7321157 0 1490778602075 5 connected
f2bb24dcc4eed871bc4ab7e56eebce9e72e37f44 127.0.0.1:7005 slave 79dd52da7a66cec1508b2ab75a439a79fa8678bc 0 1490778603582 6 connected
79dd52da7a66cec1508b2ab75a439a79fa8678bc 127.0.0.1:7002 master - 0 1490778602578 3 connected 10923-16383
88e426f2501bea4bc17a2a458beb9c57a7321157 127.0.0.1:7001 master - 0 1490778601574 2 connected 5461-10922

参考资料:http://www.cnblogs.com/goMysqL/p/4395504.html

CentOS 6.8 下 安装Redis 3.2.8的更多相关文章

  1. CentOS 8.2服务器上安装最新版Node.js的方法

    这篇文章主要介绍了CentOS 8.2服务器上安装最新版Node.js的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. 布隆过滤器(bloom filter)及php和redis实现布隆过滤器的方法

    这篇文章主要介绍了布隆过滤器(bloom filter)介绍以及php和redis实现布隆过滤器实现方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  3. springboot+redis实现简单的热搜功能

    这篇文章主要介绍了springboot+redis实现一个简单的热搜功能,通过代码介绍了过滤不雅文字的过滤器,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. Java利用redis zset实现延时任务详解

    zset作为redis的有序集合数据结构存在,排序的依据就是score。本文就将利用zset score这个排序的这个特性,来实现延时任务,感兴趣的可以了解一下

  5. SpringBoot+Redis+Lua分布式限流的实现

    本文主要介绍了SpringBoot+Redis+Lua分布式限流的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  6. Yii2框架redis基本应用示例

    这篇文章主要介绍了Yii2框架redis基本应用,结合实例形式分析了Yii2 redis扩展包的安装、配置及基本数据操作相关技巧,需要的朋友可以参考下

  7. redis+php实现微博(二)发布与关注功能详解

    这篇文章主要介绍了redis+php实现微博发布与关注功能,结合实例形式分析了php结合redis实现微博的发布及关注相关操作技巧,需要的朋友可以参考下

  8. centos+php+coreseek+sphinx+mysql之一coreseek安装篇

    这篇文章主要介绍了centos+php+coreseek+sphinx+mysql之一coreseek安装篇的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下

  9. python 实现 redis 数据库的操作

    这篇文章主要介绍了python 包 redis 数据库的操作教程,redis 是一个 Key-Value 数据库,下文基于python的相关资料展开对redis 数据库操作的详细介绍,需要的小伙伴可以参考一下

  10. Centos7 中 Node.js安装简单方法

    这篇文章主要介绍了Centos7 中 Node.js安装简单方法,非常不错具有一定的参考借鉴价值,需要的朋友可以参考下

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部