集群技术是构建高并发网站的主要技术,访问网站的最大压力是在访问某个页面时,须要时查询数据库并相应,Redis从3.0版本之后开始支持集群功能了,要让集群正常工做至少得有三个主节点。
Redis集群是基于哈希槽(hash slot)的概念来实现的,redis只集成了16384个槽,当在redis中放置一个KYE的时候,redis会经过对这个KEY用crc16算法算出一个值,而后将这个值对16383求余,这样每一个KEY都会对应一个编号在0-16383间,redis会根据节点的数量将哈希槽分配到不一样的节点。
当要取这个某一个KEY的值的时候,redis会经过要获取的KYE名,经过crc16算出一个值,而后和16383求余,经过余找到相应的节点,再在这个节点上找这个KEY值。
Redis延续了读写分离的特性,每一个主节点都会有一个从节点,从节点也能够有从节点。
主节点负责写入,从节点负责读取内存中的数据.
Node与Node互相监听,一旦有Node退出,其余几个Node会自动均分退出Node的slot,
他们本身的slot不会被从新分配,全部并不影响其余slot的使用node
三台机器一台机器能够用多个端口开多个redisredis
192.168.123.160:6379 | 192.168.123.160:6380 |
---|---|
192.168.123.170:6379 | 192.168.123.170:6380 |
192.168.123.180:6379 | 192.168.123.180:6380 |
Redis安装包里自带有redis集群工具
集群工具须要的安装包算法
zlib-1.2.8.tar.gz http://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz
ruby-2.2.9.tar.gz https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.9.tar.gz
rubygems-2.5.1.tgz https://rubygems.global.ssl.fastly.net/rubygems/rubygems-2.5.1.tgz
redis-3.2.2.gem https://rubygems.global.ssl.fastly.net/gems/redis-3.2.2.gem
redis-3.2.3.tar.gz http://download.redis.io/releases/redis-3.2.3.tar.gz数据库
安装zlibruby
gunzip zlib-1.2.8.tar.gz tar -xvf zlib-1.2.8.tar cd zlib-1.2.8 ./configure make make install
安装ruby
由于yum安装的版本较低,不支持高版本的redis集群,全部咱们使用高版本的服务器
tar -zxvf ruby-2.2.9.tar.gz cd ruby-2.2.4 ./configure -prefix=/usr/local/ruby make maek install cp ruby /bin
安装rubygems并发
tar -zxvf rubygems-2.5.1.tgz cd rubygems-2.5.1 ruby setup.rb cp bin/gem /bin
安装gem-rediside
gem install -l redis-3.2.2.gem
redis( 在这3台服务器都须要安装)高并发
tar -zxvf redis-3.2.3.tar.gz cd redis-3.2.3 make
redis的配置文件
redis.conf 须要修改的地方工具
bind 0.0.0.0 #redis服务监听的地址,测试改成本地地址会好点 port 6379 #启动端口,若是是redis-6380.conf配置文件,修改成6380 daemonize yes #修改成yes,让redis在后台运行 pidfile /var/run/redis_6379.pid #若是是redis-6380.conf配置文件,修改位redis_6380.pid logfile /usr/local/redis/logs/redis-6379.log #若是是redis-6380.conf配置文件,修改成redis_6380.pid cluster-enabled yes #开启集群 cluster-config-file nodes-51-6379.conf #若是是redis-6380.conf配置文件,修改成nodes-51-6380.conf
redis集群
复制源码包里的工具 cp src/redis-server /usr/local/redis/ cp src/redis-cli /usr/local/redis cp src/redis-trib.rb /usr/local/redis
启动redis,并建立集群
redis-server redis.conf #每台机器上都要启动,单个机器多个redis要多个配置文件 redis-trib.rb create –replicas 1 192.168.123.160:6379 192.168.123.160:6380 192.168.123.170:6379 192.168.123.170:6380 192.168.123.180:6379 192.168.123.180:6380 #建立集群
而后输入yes就能够了
查看集群节点
redis-trib.rb check 192.168.123.160:6379
出现以上信息,说明集群安装成功