怎样进行redis环境搭建
admin
2023-02-15 13:40:05
0

因为工作环境中有redis,所以对redis进行了学习,当然首先就是从搭建环境开始,下面是我对于搭建redis环境的记录。

系统是SuSE 11 sp2,

软件环境如下所示:

linux-svnfile:/home/apps/redis # ls

redis-3.0.0.gem     ruby-1.9.2-p290.tar.gz  zlib-1.2.7.tar.gz

redis-3.0.0.tar.gz  rubygems-2.4.6.tgz

redis.conf          zlib-1.2.6.tar.gz

安装基础环境:

linux-svnfile:/home/apps/redis # tar -zxf zlib-1.2.6.tar.gz -C /usr/local/src

linux-svnfile:/usr/local/src/zlib-1.2.6 # ./configure --prefix=/usr/local/zlib

linux-svnfile:/usr/local/src/zlib-1.2.6 # make && make install

linux-svnfile:/home/apps/redis # tar -zxf ruby-1.9.2-p290.tar.gz -C /usr/local/src

linux-svnfile:/usr/local/src/ruby-1.9.2-p290 # ./configure --prefix=/usr/local/ruby

linux-svnfile:/usr/local/src/ruby-1.9.2-p290 # make && make install

linux-svnfile:/usr/local/ruby # ln -s /usr/local/ruby/bin/ruby /usr/local/bin

linux-svnfile:/home/apps/redis # tar xf rubygems-2.4.6.tgz -C /usr/local/src

linux-svnfile:/usr/local/src # mv rubygems-2.4.6 ../gem

linux-svnfile:/usr/local/gem # ruby setup.rb

linux-svnfile:/usr/local/gem # cp bin/gem /usr/local/bin/

linux-svnfile:/home/apps/redis # gem install -l redis-3.0.0.gem 

Successfully installed redis-3.0.0

Installing ri documentation for redis-3.0.0

Done installing documentation for redis after 0 seconds

1 gem installed

linux-svnfile:/home/apps/redis # tar -zxf redis-3.0.0.tar.gz -C /usr/local/src

linux-svnfile:/usr/local/src # mv redis-3.0.0 ../redis

linux-svnfile:/usr/local/redis # make

至此基础环境搭建完成

下面进行集群的搭建

linux-svnfile:/usr/local/redis # cp src/redis-server /usr/local/bin/

linux-svnfile:/usr/local/redis # cp src/redis-cli /usr/local/bin/

linux-svnfile:/usr/local/redis # cp src/redis-trib.rb /usr/local/bin

linux-svnfile:/usr/local/redis # mkdir -p /usr/local/cluster/{7000..7005}

linux-svnfile:/usr/local/redis # vi redis.conf

daemonize yes

port 7000

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7000

linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7001

linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7002

linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7003

linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7004

linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7005

这里需要注意的是文件名对应文件里端口的配置,例如7001文件下的port参数需要改为7001,其他一样做修改。

linux-svnfile:/usr/local/redis # redis-server ../cluster/7000/redis.conf 

linux-svnfile:/usr/local/redis # redis-server ../cluster/7001/redis.conf 

linux-svnfile:/usr/local/redis # redis-server ../cluster/7002/redis.conf 

linux-svnfile:/usr/local/redis # redis-server ../cluster/7003/redis.conf 

linux-svnfile:/usr/local/redis # redis-server ../cluster/7004/redis.conf 

linux-svnfile:/usr/local/redis # redis-server ../cluster/7005/redis.conf 

linux-svnfile:/usr/local/redis # ps -ef | grep redis

root     15590     1  0 18:52 ?        00:00:00 redis-server *:7000 [cluster]    

linux-svnfile:/usr/local/redis # 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

Connecting to node 127.0.0.1:7000: OK

Connecting to node 127.0.0.1:7001: [ERR] Sorry, can't connect to node 127.0.0.1:7001

You have new mail in /var/mail/root

linux-svnfile:/usr/local/cluster/7000 # redis-server redis.conf 

linux-svnfile:/usr/local/cluster/7000 # cd ../7001

linux-svnfile:/usr/local/cluster/7001 # redis-server redis.conf 

linux-svnfile:/usr/local/cluster/7001 # cd ../7002

linux-svnfile:/usr/local/cluster/7002 # redis-server redis.conf 

linux-svnfile:/usr/local/cluster/7002 # cd ../7003

linux-svnfile:/usr/local/cluster/7003 # redis-server redis.conf 

linux-svnfile:/usr/local/cluster/7003 # cd ../7004

linux-svnfile:/usr/local/cluster/7004 # redis-server redis.conf 

linux-svnfile:/usr/local/cluster/7004 # cd ../7005

linux-svnfile:/usr/local/cluster/7005 # redis-server redis.conf 

linux-svnfile:/usr/local/cluster/7005 # ps -ef | grep redis

root     17575     1  0 20:05 ?        00:00:00 redis-server *:7000 [cluster]

root     17590     1  0 20:06 ?        00:00:00 redis-server *:7001 [cluster]

root     17604     1  0 20:06 ?        00:00:00 redis-server *:7002 [cluster]

root     17612     1  0 20:06 ?        00:00:00 redis-server *:7003 [cluster]

root     17616     1  0 20:06 ?        00:00:00 redis-server *:7004 [cluster]

root     17624     1  0 20:06 ?        00:00:00 redis-server *:7005 [cluster]

像是上面在启动服务时需要注意切换到相应的配置文件的目录下,不然相应端口的服务无法启动,例如我之前在/usr/local/redis目录下启动后只有7000对应的服务启动了。

linux-svnfile:/usr/local/redis # redis-server ../cluster/7000/redis.conf 

linux-svnfile:/usr/local/redis # redis-server ../cluster/7001/redis.conf 

linux-svnfile:/usr/local/redis # redis-server ../cluster/7002/redis.conf 

linux-svnfile:/usr/local/redis # redis-server ../cluster/7003/redis.conf 

linux-svnfile:/usr/local/redis # redis-server ../cluster/7004/redis.conf 

linux-svnfile:/usr/local/redis # redis-server ../cluster/7005/redis.conf 

linux-svnfile:/usr/local/redis # ps -ef | grep redis

root     15144 19064  0 18:37 pts/0    00:00:00 vi redis.conf

root     15590     1  0 18:52 ?        00:00:00 redis-server *:7000 [cluster]          

root     15616 19443  0 18:52 pts/1    00:00:00 grep redis

怎样进行redis环境搭建

怎样进行redis环境搭建

linux-svnfile:/usr/local/cluster #redis-cli -p 7000

127.0.0.1:7000>

怎样进行redis环境搭建

怎样进行redis环境搭建

删除slave节点

怎样进行redis环境搭建

怎样进行redis环境搭建

删除master节点

linux-svnfile:/usr/local/redis # redis-trib.rb reshard 127.0.0.1:7001

How many slots do you want to move (from 1 to 16384)? 5461 

What is the receiving node ID? 42929649e533ec8aad7cbb81f204f04c849d4bff

Please enter all the source node IDs.  

  Type 'all' to use all the nodes as source nodes for the hash slots.  

  Type 'done' once you entered all the source nodes IDs.  

Source node #1: 6fe9561e605b7ee85e67a2557f7fb641f482afb4 

Source node #2:done  

#Do you want to proceed with the proposed reshard plan (yes/no)? yes  

说明:

5461表示要删除master所有的slot数量

What is the receiving node ID是指将7000的slot迁移的节点7001的node-id

Source node #1是指要删除的master的node-id

下面可以看到7000的slot为0,而7001多了4561

怎样进行redis环境搭建

在删除master节点出现如下面所示的错误,是因为删除master节点之前没有删除master节点的slave节点。

怎样进行redis环境搭建

上面是在单台机器上做的集群,下面展示两台机器上做集群,其实也很简单。

参考之前的环境编译源码到另一台机器

在两台机器上编辑配置文件

/usr/local/redis # vi redis.conf

daemonize yes

port 7000

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

cluster-config-file nodes-7001.conf

分别创建目录和文件

linux-svnfile:/usr/local/redis # mkdir -p/usr/local/cluster/{7001..7003}

localhost:/usr/local/redis # mkdir -p/usr/local/cluster/{8001..8003}

linux-svnfile:/usr/local/redis # cpredis.conf ../cluster/7001

linux-svnfile:/usr/local/redis # cpredis.conf ../cluster/7002

linux-svnfile:/usr/local/redis # cpredis.conf ../cluster/7003

localhost:/usr/local/redis # cp redis.conf../cluster/8001

localhost:/usr/local/redis # cp redis.conf../cluster/8002

localhost:/usr/local/redis # cp redis.conf../cluster/8003

修改对应目录的配置文件其中port 和cluster-config-file分别对应各自的目录名,可使用sed命令做修改

sed -i "s/7001/7002/g"

启动服务

怎样进行redis环境搭建

怎样进行redis环境搭建

怎样进行redis环境搭建

怎样进行redis环境搭建

怎样进行redis环境搭建

相关内容

热门资讯

安全生产许可证状态不是“有效”... 工程公司的安全生产许可证在官方系统显示为“其他”状态,有一栏则显示“整改”,却成为高标准农田项目的第...
深化产教融合 推进数智育人 哈... 7月23日,由阿里国际人工智能人才孵化中心(以下简称“阿里国际AITIC”)主办的“智启未来·数智赋...
中国工程院举办学习陈立泉、贲德... 北京7月24日电 (记者 孙自法)中国工程院7月24日在北京举办学习陈立泉、贲德院士科学家精神座谈会...
从成都看低空经济,专访杨军:万... 电子科技大学教授、深思实验室主任杨军接受封面新闻记者专访 封面新闻记者 王一理 摄影 陈光旭 近年来...
蚂蚁集团副总裁张俊杰:希望与成... 7月24日下午,APEC人工智能高级别论坛在成都举行。会议期间,蚂蚁集团副总裁、健康事业群总裁张俊杰...
北大博雅塔为王虹邓煜亮灯 极目新闻记者 陈洋洋7月24日晚,多位北京网友发帖称,在北京大学校园内的博雅塔上,看到了庆祝中国数学...
要和马六甲争高下的陆桥黄了,暴... (文/观察者网 郭光昊、张菁娟)绕开马六甲海峡,在泰国南部的狭窄地峡上“劈开一个口子”。这是每个中国...
AI做科研,走过概念期 2024年,诺贝尔化学奖颁给了谷歌DeepMind的两位人工智能科学家德米斯·哈萨比斯和约翰·杰珀,...
FLUX 3多模态AI模型登场... IT之家 7 月 24 日消息,Black Forest Labs 昨日(7 月 23 日)发布博文...
广州远联取得带全方位保护结构的... 国家知识产权局信息显示,广州远联物流服务有限公司取得一项名为“一种带全方位保护结构的升降平台”的专利...