centos7 安装Redis

4.0.1 为例

基本安装:

可以在linux下运行如下命令进行安装

$ tar -zxvf redis-4.0.1-linux.tar.gz
$ cd redis-4.0.1
$ make

make完后redis-4.0.1/src目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli


下面启动redis服务.

$./redis-server &

注意这种方式启动redis 使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件使用下面命令启动.

 

$./redis-server ../redis.conf &

redis.conf是一个默认的配置文件。我们可以根据需要使用自己的配置文件。

设置密码参数为:requirepas 密码

设置允许访问bind 127.0.0.1 {具体IP},注销掉则允许所有IP访问

运行模式  protected-mode no

 

redis3.2之后,redis增加了protected-mode,在这个模式下,默认下其他地址访问redis会报错,即使注释掉了bind 127.0.0.1,再访问redis时候还是报错

修改办法:protected-mode no

同时设置redis密码,使用密码登录


启动redis服务进程后,就可以使用测试客户端程序redis-cliredis服务交互了.
比如

$ ./redis-cli [-h 127.0.0.1 -p 6379]
redis
> set foo bar
OK
redis
> get foo
"bar"

这里演示了getset命令操作简单类型value的例子。fookey ,bar是个string类型的value

 

如果 redis.conf中设置了密码,则客户端需要指定密码才能连接成功。

$ ./redis-cli [-h 127.0.0.1 -p 6379]

$ auth 密码

 

 

到此,单节点的 Redisserver 已经安装完毕,以下进入配置和安装集群的过程。

创建集群中的6个节点

集群配置文件

集群相关的配置文件主要修改 redis.conf 中的一下几个地方,因为都部署在一个服务器上,每个节点的端口不同。

 

 

 

 

[root@centos7-1 redis-3.0.6]$ vi redis.conf

#修改以下地方

port 7000

cluster-enabled yes

cluster-config-file nodes-7000.conf

cluster-node-timeout 5000

appendonly yes

每个节点的配置文件

创建6个文件夹,分别表示一个 redis 节点,文件夹使用 redis 节点的端口号命名,文件里存放每个节点的配置文件。

 

[root@centos7-1 redis-3.0.6]# mkdir /usr/local/redis-cluster

[root@centos7-1 redis-3.0.6]# cd /usr/local/redis-cluster

[root@centos7-1 redis-cluster]# mkdir 7000 7001 7002 7003 7004 7005

拷贝 redis.conf 拷贝到6个文件夹中

 

 

 

 

[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7000

[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7001

[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7002

[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7003

[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7004

[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7005

并修改每个配置中的内容为各自节点的端口,注意 port  cluster-config-file 的值必须唯一。

分别启动每个节点

?

 

 

 

 

[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7000/redis.conf

[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7001/redis.conf

[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7002/redis.conf

[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7003/redis.conf

[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7004/redis.conf

[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7005/redis.conf

启动完成后查看进程

?

 

 

 

 

 

[root@centos7-1 ~]# ps -ef | grep redis

root  4704 2177 0 12:12 pts/0 00:00:07 redis-server *:7000 [cluster]

root  4707 4599 0 12:12 pts/1 00:00:07 redis-server *:7001 [cluster]

root  4710 4638 0 12:12 pts/2 00:00:07 redis-server *:7002 [cluster]

root  4752 4717 0 12:12 pts/3 00:00:07 redis-server *:7003 [cluster]

root  4788 4759 0 12:12 pts/4 00:00:07 redis-server *:7004 [cluster]

root  4824 4795 0 12:13 pts/5 00:00:07 redis-server *:7005 [cluster]

root  9018 8984 0 14:08 pts/6 00:00:00 grep --color=auto redis

建立 Redis 集群

上面的步骤分别创建了6个节点,并已经启动,这里要把这6个节点加入到一个集群里面。redis 已经为我们提供了集群操作的脚本 redis-trib.rb , 操作起来很简单,继续。

安装 ruby

由于集群操作需要用到 ruby 脚本 redis-trib.rb , 所以要安装 ruby rubygems

?

 

 

 

 

[root@centos7-1 ~]# yum -y install ruby rubygems

[root@centos7-1 ~]# gem install redis --version 3.0.6

Fetching: redis-3.0.6.gem (100%)

Successfully installed redis-3.0.6

Parsing documentation for redis-3.0.6

Installing ri documentation for redis-3.0.6

1 gem installed

redis-trib.rb 是一个 ruby 脚本工具,用来建立和管理 redis 集群,因为使用比较频繁,所以拷贝脚本 redis-trib.rb  /usr/local/bin/

[root@centos7-1 redis-3.0.6]$ cp src/redis-trib.rb /usr/local/bin/

创建集群

[root@centos7-1 ~]# redis-trib.rb 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: d900d3667196121f95bdbd68ca2317926a6950bc 127.0.0.1:7000

 slots:0-5460 (5461 slots) master

M: b662853288cc89a3b78f70120d57c0a34f6a91d5 127.0.0.1:7001

 slots:5461-10922 (5462 slots) master

M: 6dc5ee101c2432ec4c1d934d54a6a3565116bbff 127.0.0.1:7002

 slots:10923-16383 (5461 slots) master

S: d18e50ac6aff2f612fac43da74a79288aa574c87 127.0.0.1:7003

 replicates d900d3667196121f95bdbd68ca2317926a6950bc

S: 85f6455e14d03ebaefeca3dbe3c78c92f2f76ead 127.0.0.1:7004

 replicates b662853288cc89a3b78f70120d57c0a34f6a91d5

S: 89d792acda7f2c99c95b0d3947572647cf9edc67 127.0.0.1:7005

 replicates 6dc5ee101c2432ec4c1d934d54a6a3565116bbff

Can I set the above configuration? (type 'yes' to accept): 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: d900d3667196121f95bdbd68ca2317926a6950bc 127.0.0.1:7000

 slots:0-5460 (5461 slots) master

M: b662853288cc89a3b78f70120d57c0a34f6a91d5 127.0.0.1:7001

 slots:5461-10922 (5462 slots) master

M: 6dc5ee101c2432ec4c1d934d54a6a3565116bbff 127.0.0.1:7002

 slots:10923-16383 (5461 slots) master

M: d18e50ac6aff2f612fac43da74a79288aa574c87 127.0.0.1:7003

 slots: (0 slots) master

 replicates d900d3667196121f95bdbd68ca2317926a6950bc

M: 85f6455e14d03ebaefeca3dbe3c78c92f2f76ead 127.0.0.1:7004

 slots: (0 slots) master

 replicates b662853288cc89a3b78f70120d57c0a34f6a91d5

M: 89d792acda7f2c99c95b0d3947572647cf9edc67 127.0.0.1:7005

 slots: (0 slots) master

 replicates 6dc5ee101c2432ec4c1d934d54a6a3565116bbff

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

以上 create 命令创建了集群,选项 –replicas 1 表示每个 Master 都需要一个 Slave。所以结果是集群中创建了3 Master 节点 3 Slave 节点。

上面信息中 M 表示 Master 节点, S 表示 Slave 节点。

由此可以看出三组 Master  Slave 关系如下:

M: d900d3667196121f95bdbd68ca2317926a6950bc -> S: d18e50ac6aff2f612fac43da74a79288aa574c87

M: 6dc5ee101c2432ec4c1d934d54a6a3565116bbff -> S: 89d792acda7f2c99c95b0d3947572647cf9edc67

M: b662853288cc89a3b78f70120d57c0a34f6a91d5 -> S: 85f6455e14d03ebaefeca3dbe3c78c92f2f76ead

检测集群的状态

?

[root@centos7-1 ~]# redis-trib.rb check 127.0.0.1:7000

>>> Performing Cluster Check (using node 127.0.0.1:7000)

M: d900d3667196121f95bdbd68ca2317926a6950bc 127.0.0.1:7000

 slots:0-5460 (5461 slots) master

 1 additional replica(s)

M: 6dc5ee101c2432ec4c1d934d54a6a3565116bbff 127.0.0.1:7002

 slots:10923-16383 (5461 slots) master

 1 additional replica(s)

S: 89d792acda7f2c99c95b0d3947572647cf9edc67 127.0.0.1:7005

 slots: (0 slots) slave

 replicates 6dc5ee101c2432ec4c1d934d54a6a3565116bbff

S: d18e50ac6aff2f612fac43da74a79288aa574c87 127.0.0.1:7003

 slots: (0 slots) slave

 replicates d900d3667196121f95bdbd68ca2317926a6950bc

S: 85f6455e14d03ebaefeca3dbe3c78c92f2f76ead 127.0.0.1:7004

 slots: (0 slots) slave

 replicates b662853288cc89a3b78f70120d57c0a34f6a91d5

M: b662853288cc89a3b78f70120d57c0a34f6a91d5 127.0.0.1:7001

 slots:5461-10922 (5462 slots) master

 1 additional replica(s)

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

测试集群

利用 redis-cli-c -p 端口号连接集群

?

[root@centos7-1 ~]# redis-cli -c -p 7000

127.0.0.1:7000> get hello

(nil)

127.0.0.1:7000> set hello "hello world"

OK

127.0.0.1:7000> get hello

"hello world"

127.0.0.1:7000> get name

-> Redirected to slot [5798] located at 127.0.0.1:7001

(nil)

127.0.0.1:7001> set name "redis server"

OK

127.0.0.1:7001> get name

"redis server"

 

 

 

项目中使用

在需要使用redis的bean类中自动注入RedisHolder

@Autowired

private RedisHolder redisHolder;

 

即可通过jedisTemplate操作Redis数据库。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值