redis集群

来源:互联网 发布:linux运行fortran程序 编辑:程序博客网 时间:2024/06/05 06:10

即使有了主从复制,每个数据库都要保存整个集群中的所有数据,容易形成木桶效应。Redis3.0版本的一大特性就是集群(Cluster),接下来我们一起学习集群。

1.添加6479,6480,6481三个端口(可以参考我的另一篇博客redis主从复制)

2.在redis.conf配置文件中,开启集群,cluster-enabledyes

3.指定集群的配置文件,cluster-config-file"nodes-xxxx.conf"

4.创建集群

  4.1环境安装(ruby)   

      因为redis-trib.rb是有ruby语言编写的所以需要安装ruby环境。

     yum -y install zlib ruby rubygems

     gem install redis

    手动安装:

     rz上传redis-3.2.1.gem

     gem install -l redis-3.2.1.gem

  4.2 创建集群

    首先,进入redis的安装包路径下:cd /usr/local/src/redis/redis-3.0.2

[root@localhost src]# lsadlist.c     crc64.h        mkreleasehdr.sh     redis-cli.c     sort.oadlist.h     crc64.o        multi.c             redis-cli.o     sparkline.cadlist.o     db.c           multi.o             redis.h         sparkline.hae.c         db.o           networking.c        redis.o         sparkline.oae_epoll.c   debug.c        networking.o        redis-sentinel  syncio.cae_evport.c  debug.o        notify.c            redis-server    syncio.oae.h         dict.c         notify.o            redis-trib.rb  testhelp.hae_kqueue.c  dict.h         object.c            release.c       t_hash.cae.o         dict.o         object.o            release.h       t_hash.oae_select.c  endianconv.c   pqsort.c            release.o       t_list.canet.c       endianconv.h   pqsort.h            replication.c   t_list.oanet.h       endianconv.o   pqsort.o            replication.o   t_set.canet.o       fmacros.h      pubsub.c            rio.c           t_set.oaof.c        help.h         pubsub.o            rio.h           t_string.caof.o        hyperloglog.c  rand.c              rio.o           t_string.oasciilogo.h  hyperloglog.o  rand.h              scripting.c     t_zset.cbio.c        intset.c       rand.o              scripting.o     t_zset.obio.h        intset.h       rdb.c               sds.c           util.cbio.o        intset.o       rdb.h               sds.h           util.hbitops.c     latency.c      rdb.o               sds.o           util.obitops.o     latency.h      redisassert.h       sentinel.c      valgrind.supblocked.c    latency.o      redis-benchmark     sentinel.o      version.hblocked.o    lzf_c.c        redis-benchmark.c   setproctitle.c  ziplist.c

  执行命令:    ./redis-trib.rb create --replicas 0 192.168.2.86:6479192.168.2.86:6480 192.168.2.86:6481  之后输入yes确认

      --replicas 0:指定了从数据的数量为0

      注意:这里不能使用127.0.0.1,否则在Jedis客户端使用时无法连接到!

(不好意思啊,因为我已经装好了,所以借用了一下网上的图)

4.3 测试

[root@localhost /]# redis-cli Could not connect to Redis at 127.0.0.1:6379: Connection refusednot connected> 
这里请注意,如果你完全按照我的步骤来的,直接输入redis-cli是不行的,它默认是6379,所以你得输入redis-cli -p 6479

127.0.0.1:6479> set abc 123(error) MOVED 7638 192.168.2.86:6480127.0.0.1:6479> 

因为abc的hash槽信息是在6480上,现在使用redis-cli连接的6479,无法完成set操作,需要客户端跟踪重定向。

redis-cli -c -p 6479

[root@localhost /]# redis-cli -c -p 6479127.0.0.1:6479> set abc 123-> Redirected to slot [7638] located at 192.168.2.86:6480OK192.168.2.86:6480>
这里它由6479跳到6480了,我们回到6479看下有没有abc的数据

[root@localhost /]# redis-cli -c -p 6479127.0.0.1:6479> get abc-> Redirected to slot [7638] located at 192.168.2.86:6480"123"192.168.2.86:6480> 
依然重定向到6480,不过已经能够得到数据了

在这里需要解释下,它重定向到6480,是因为设置abc的值时,首先计算了abc的插槽值,它是在6480端口的插槽值之间的




0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果手机看淘宝很卡怎么办 苹果手机淘宝忘了密码怎么办 苹果手机更新后淘宝打不开怎么办 淘宝买到苹果翻新机怎么办 淘宝网密码忘了怎么办 淘宝改密码要拍摄脸部怎么办 苹果一体机键盘没反应怎么办 淘宝买东西退货卖家拒绝怎么办? 淘宝被限制下单怎么办 淘宝扫码登录后怎么办 花呗选项被隐藏怎么办 新换手机支付宝怎么办 ih5点击按钮跳转页面怎么办 sap点安装程序没反应怎么办 淘宝店账号忘了怎么办 点击电脑桌面图标没反应怎么办 为什么淘宝打不开已停止运行怎么办 移动宽带打不开淘宝网怎么办 淘宝发布宝贝没有品牌怎么办 烫了卷发显老怎么办 唯品会商品不支持退换货怎么办 京东没有自提怎么办 不支持七天无理由的商品怎么办 淘宝评价忘记点亮星星怎么办 淘宝宝贝权重降低了该怎么办 换卡支付宝账号怎么办 支付宝免密支付无法关闭怎么办 手机换了支付宝怎么办 支付宝版本过低怎么办 支付宝无故扣钱怎么办 支付宝里面的钱不见了怎么办 支付宝还不起钱怎么办 支付宝借不到钱怎么办 买家淘宝号被监控了怎么办 卖微信号被骗了怎么办 淘宝原密码忘了怎么办 淘宝号忘记密码了怎么办啊 淘宝忘了原密码怎么办 电脑账户密码忘了怎么办 淘宝的密码忘了怎么办 支付宝支付异常无法登录怎么办