Joeyos's Blog Software Engineer

Redis数据库缓存系统搭建

2019-01-17
Quan Zhang

Redis安装

第一步:安装gcc编译环境
yum install gcc-c++
第二步:把redis的源码上传到linux服务器。
第三步:解压缩。
tar -zxvf redis-3.0.0.tar.gz
第四步:make
第五步:make install PREFIX=/usr/local/redis
第六把:把/usr/local/bin 重命名为redis

启动Redis

方式1(前端启动):./redis-server

方式2(后台启动):

1、复制redis.conf到redis的安装目录cp ~/redis-3.0.0/redis.conf /usr/local/redis/
2、修改redis.conf。修改daemonize yes
3、[root@bogon redis]# ./redis-server redis.conf

运行测试

redis-cli -p 端口 -h ip地址 <-c>连接集群时使用此参数

默认端口:6379
Ip:localhost(127.0.0.1)

设置防火墙

添加6379

[root@localhost redis]# vi /etc/sysconfig/iptables

重启防火墙:

[root@localhost redis]# service iptables restart
./redis-cli
Keys *查看当前list或set
Set a 100设置
Get a获得
Incr a加1
Decr a减1
Del a删除
Keys *查看当前

[root@localhost redis]# ./redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set a 100
OK
127.0.0.1:6379> get a
"100"
127.0.0.1:6379> incr a
(integer) 101
127.0.0.1:6379> decr a
(integer) 100
127.0.0.1:6379> del a
(integer) 1
127.0.0.1:6379> keys *
(empty list or set)

关闭Redis

./redis-cli -p 6379 shutdown

Redis架构细节

架构细节:
(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.
(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.
(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可
(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value

Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点

集群搭建

  • 新建文件夹redis-cluster
  • 把redis拷贝6份到redis-cluster,命名为redis01-redis06
  • 修改每个redis的conf文件端口从7001-7006,打开cluster-enables yes注释
  • 从redis安装文件夹中拷贝src/redis-trib.rb到redis-cluster
  • yum install ruby
  • yum install rubygems
  • gem install redis-3.0.0.gem【从win上传到linux】

设置防火墙

添加7001\7002\7003\7004\7005\7006端口:

[root@localhost redis]# vi /etc/sysconfig/iptables

重启防火墙:

[root@localhost redis]# service iptables restart

启动所有redis

编写shell脚本:

  • start-all.sh
  • chmod +x start-all.sh【赋予可执行权限】
cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..

使用redis-trib.rb

./redis-trib.rb create --replicas 1 192.168.52.129:7001 192.168.52.129:7002 192.168.52.129:7003 192.168.52.129:7004 192.168.52.129:7005  192.168.52.129:7006

关闭redis

编写shell脚本:

  • shutdowm-all.sh
  • chmod +x shutdown-all.sh
cd redis01
./redis-cli -p 7001 shutdown
cd ..
cd redis02
./redis-cli -p 7002 shutdown
cd ..
cd redis03
./redis-cli -p 7003 shutdown
cd ..
cd redis04
./redis-cli -p 7004 shutdown
cd ..
cd redis05
./redis-cli -p 7005 shutdown
cd ..
cd redis06
./redis-cli -p 7006 shutdown
cd ..

Similar Posts

Comments