ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:356.25KB ,
资源ID:23826480      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23826480.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(redis30以上版本集群安装.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

redis30以上版本集群安装.docx

1、redis30以上版本集群安装1、Redis集群安装方法1、环境介绍操作系统版本:centos7CentOS Linux release 7.0.1406 (Core)详细版本信息:Linux version 3.10.0-123.el7.x86_64 (builderkbuilder.dev.centos.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Mon Jun 30 12:09:22 UTC 2014【查看系统命令:cat /proc/version或者cat /etc/redhat-release

2、或者uname -a】Redis版本:redis-3.0.6Ruby安装包:参考网址: 安装步骤:1、下载redis。官网下载3.0.6版本,之前2.几的版本不支持集群模式,最新版本3.2支持集群模式,但是目前并不稳定,因此建议使用3.0.6版本redis。目前redis3.0以上版本暂无支持windows系统客户端。下载地址:2、下载之后,会得到一个名字为redis-3.0.6.tar.gz的压缩文件,可以在本地解压,也可以传至linux上解压文件,前提是你的linux操作系统有ftp且已安装解压文件包。3、如果已经是当前目录,则直接解压文件,如果不是当前目录,要将redis压缩包移动至目标

3、目录,使用如下命令移动文件:mv redis-3.0.0-rc2.tar.gz/ftp/private/redis-3.0/4、进入目标文件夹,即redis压缩包所在的文件夹,本人使用文件夹为/ftp/private/redis-3.0/,同时解压redis的压缩包,进入目录和解压命令如下:Cd /ftp/private/redis-3.0/tar-zxvfredis-3.0.0-rc2.tar.gz5、解压完成之后,将在当前目录生成一个redis-3.0.6文件夹,进入该文件夹,将看到如下文件目录:cd redis-3.0.6执行编译命令,将看到如下图效果【必须在redis-3.0.6文件夹

4、下执行该命令,该命令是编译源文件命令】:make执行编译命令,将看到如下图效果【make install命令是安装软件命令】:make install执行完上述命令,进入src目录,将看到redis的服务启动文件redis-server,同时还有客户端文件redis-cli:cd /ftp/private/redis-3.0/redis-3.0.6/src执行命令./redis-server将看到下图效果,看到如下图的效果表示你的单个redis服务安装编译正常:./redis-server至此完成单个redis服务的安装,同时可以测试redis是否正常,输入./redis-cli,如下图效果。

5、看到上图表示redis的存取正常,可以正常使用。2、集群环境的搭建:Redis集群环境搭建中,建议最好将所有的redis集群节点的版本统一,否则容易出现无法解决的错误或者bug。首先创建集群需要的目录改目录可以自定义,规划自己的服务器存放路径:mkdir -p /ftp/private/redis-3.0将刚才编译完成的redis文件夹拷贝至当前文件夹,如果是一个机器放多个redis服务,可以复制多个在当前文件夹下,如果是不同机器部署的redis集群,则只需拷贝一个即可【本人使用的为一个机器部署多个节点】:cp -r redis-3.0.6 redis-3.0.6-9001复制完成后的目录如下

6、,其中每个文件最后四位为当前redis使用的端口:复制完成之后,修改redis配置文件,即redis-3.0.6目录下的redis.conf,该文件包含了所有的redis的配置信息和样例说明,主要的几个配置地方如下:port 9001 #使用端口daemonize yes #是否在后台执行,yes:后台运行;no:不是后台运行(老版本默认)cluster-enabled yes #是否使用集群,yes使用,no不使用cluster-config-file nodes.conf #集群的初始化文件存放位置cluster-node-timeout 5000 #集群节点超时时间appendonly

7、no#默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了。但是redis如果中途宕机,会导致可能有几分钟的数据丢失,根据save来策略进行持久化,Append Only File是另一种持久化方式,可以提供更好的持久化特性。Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。Yes为使用持久化,no为不使用持久化。修改完成之后,将配置文件复制N分,N为你的节点个数,复制的目标目录为redis的运行文件src目录下,也可以自己规划配置文件路径,放在自己想要放置的目录,命令如下

8、:cp redis.conf /ftp/private/redis-3.0/redis-3.0.6-9001/src/redis.confcp redis.conf /ftp/private/redis-3.0/redis-3.0.6-9002/src/redis.confcp redis.conf /ftp/private/redis-3.0/redis-3.0.6-9003/src/redis.conf然后分别启动所有的redis实例【注释:如果你的每台机器都包含多个节点,则需要分别修改redis.Conf的端口port配置,如果是不同机器则无需修改端口,可以全部节点使用同一个端口】,启动

9、方式为,进入redis实例的src目录下,然后分别运行如下命令:./redis-server ./redis.conf 如果你的redis.conf和redis-server不在同一目录则后面使用全路径,假设我的配置文件在var下,命令如下:./redis-server /var/redis.conf由于上面配置了redis在后台运行,所以启动完redis之后,将不会显示单击运行效果图,如果要验证启动是否成功,则可以在src目录下执行如下命令9001为你启动的实例所用端口号:./redis-cli -p 9001出现上图效果表示启动成功。分别将所有的节点启动完成之后,执行如下命令可查看redi

10、s-server运行情况,出现下图说明运行正常:ps-ef | grepredis然后进入集群中一个redis节点的src目录下,运行如下命令创建集群,其中127.0.0.1需要换成你的服务器ip地址【由于我是本地安装集群,因此使用127.0.0.1。create表示创建一个新的集群,replicas 1表示指定集群中的副本集为1】:./redis-trib.rbcreate-replicas1127.0.0.1:9001127.0.0.1:9002127.0.0.1:9003出现上图效果,说明集群启动成功。如果你没有外网安装可以先到https:/rubygems.org/gems/redis

11、下载,然后离线安装。sudo gem install redis-3.0.7.gem -local需要注意的是执行redis-trib.rb 命令需要 ruby 的支持,如果在线安装可以执行:yum -y install ruby3、集群基本操作查看目前集群中的状态,如下命令查看目前集群中的所有节点:cluster nodes向集群中新加入一个节点:./redis-trib.rb add-node 127.0.0.1:9004 127.0.0.1:9001第一个参数是要加入的节点,第二个参数是集群中已有的节点。./redis-trib.rb add-node -slave 127.0.0.1:

12、9005 127.0.0.1:9001第一个参数为从节点,第二个参数为主节点。./redis-trib.rb del-node 127.0.0.1:9001 cbb01bdfdc265b190496956354d84aaae6e7d54d这里要注意一下,第一个参数是集群中的任何一个主节点地址,而第二个参数是要删除节点的 ID,这个ID如果你不知道的话,可以通过 cluster nodes 命令查看。还有一点就是要删除的节点必须是空的,也就是不能缓存任何数据,否则会删除不成功。对于非空节点,在删除之前需要重新分片,将缓存的数据转移到别的节点。如何重新分片:我们先给某个节点做点数据:./redis

13、-cli -c -p 9001127.0.0.1:9001 set testkey001 testvalue001- Redirected to slot 12786 located at 127.0.0.1:9003OK127.0.0.1:9003现在 9003 上已经有数据了,我们尝试删除一下:./redis-trib.rb del-node 127.0.0.1:9001 78ec1fd6647b79627d7c29bb2b22d04a4a6c43b3 Removing node 78ec1fd6647b79627d7c29bb2b22d04a4a6c43b3 from cluster 1

14、27.0.0.1:9001Connecting to node 127.0.0.1:9001: OKConnecting to node 127.0.0.1:9002: OKConnecting to node 127.0.0.1:9003: OKERR Node 127.0.0.1:9003 is not empty! Reshard data away and try again.没有删除成功,我们来重新分片,把 9003 上的数据转移:./redis-trib.rb reshard 127.0.0.1:9003然后输出了很多信息,很多数值和ID都可以从这段信息中找到。How many s

15、lots do you want to move (from 1 to 16384)? 5461会问你要移动多少个哈希槽,我们把 9003 上的所有哈希槽都移走,5461 这个数字可以从终端上看到,或许你的实际情况不是这个数字。What is the receiving node ID? 4d2e0a8360795ce7ce8381c68746034aeba3c9b9然后问你你要把这些哈希槽移到哪儿去,我指定了 9001 的 节点 ID。Please enter all the source node IDs. Type all to use all the nodes as source n

16、odes for the hash slots. Type done once you entered all the source nodes IDs.Source node #1:78ec1fd6647b79627d7c29bb2b22d04a4a6c43b3Source node #2:done之后,redis 列出了重新分片计划,最后问你Do you want to proceed with the proposed reshard plan (yes/no)? yes执行完成后,我们看看 9003 上还有没有 key:./redis-cli -p 9003127.0.0.1:9003

17、 keys *(empty list or set)127.0.0.1:9003再看看 9001 上是不是有这个 key 了./redis-cli -p 9001127.0.0.1:9001 keys *1) testkey001127.0.0.1:9001没错,果然转移过来了。最后我们试试能不能把 9003 删除: ./redis-trib.rb del-node 127.0.0.1:9001 78ec1fd6647b79627d7c29bb2b22d04a4a6c43b3 Removing node 78ec1fd6647b79627d7c29bb2b22d04a4a6c43b3 from

18、 cluster 127.0.0.1:9001Connecting to node 127.0.0.1:9001: OKConnecting to node 127.0.0.1:9002: OKConnecting to node 127.0.0.1:9003: OK Sending CLUSTER FORGET messages to the cluster. SHUTDOWN the node./redis-cli -p 9003Could not connect to Redis at 127.0.0.1:9003: Connection refusednot connected看到上面

19、结果表示已成功移除redis.官方是推荐使用redis-trib.rb fix 来修复集群. . 通过cluster nodes看到7001这个节点被干掉了 那么./redis-trib.rb fix 127.0.0.1:9001修复完成后再用check命令检查下是否正确./redis-trib.rb check 127.0.0.1:9001只要输入任意集群中节点即可,会自动检查所有相关节点。可以查看相应的输出看下是否是每个Master都有了slots,如果分布不均匀那可以使用下面的方式重新分配slot:./redis-trib.rb reshard 127.0.0.1:7001集群 CLUS

20、TER INFO 打印集群的信息 CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。 节点 CLUSTER MEET 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。 CLUSTER FORGET 从集群中移除 node_id 指定的节点。 CLUSTER REPLICATE 将当前节点设置为 node_id 指定的节点的从节点。 CLUSTER SAVECONFIG 将节点的配置文件保存到硬盘里面。 槽(slot) CLUSTER ADDSLOTS slot . 将一个或多个槽(slot)指派(assign)给当前节点。CL

21、USTER DELSLOTS slot . 移除一个或多个槽对当前节点的指派。 CLUSTER FLUSHSLOTS 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。 CLUSTER SETSLOT NODE 将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽,然后再进行指派。 CLUSTER SETSLOT MIGRATING 将本节点的槽 slot 迁移到 node_id 指定的节点中。 CLUSTER SETSLOT IMPORTING 从 node_id 指定的节点中导入槽 slot 到本节点。 CLUSTER

22、 SETSLOT STABLE 取消对槽 slot 的导入(import)或者迁移(migrate)。键 CLUSTER KEYSLOT 计算键 key 应该被放置在哪个槽上。 CLUSTER COUNTKEYSINSLOT 返回槽 slot 目前包含的键值对数量。 CLUSTER GETKEYSINSLOT 返回 count 个 slot 槽中的键。 二、安装过程容易出现的错误:编译redis文件的时候,执行报错,修改redis文件的执行权限,命令如下:chmod -R 777 文件名执行上面的命令的时候会报错,因为是执行的ruby的脚本,需要ruby的环境错误内容:/usr/bin/env

23、:ruby:Nosuchfileordirectory所以需要安装ruby的环境,这里推荐使用yuminstallruby安装执行命令:yuminstallruby -服务器能联网命令然后再执行第6步的创建集群命令,还会报错,提示缺少rubygems组件,使用yum安装错误内容:./redis-trib.rb:24:inrequire:nosuchfiletoload-rubygems(LoadError)from./redis-trib.rb:24执行命令:yuminstallrubygems -服务器能联网命令再次执行第6步的命令,还会报错,提示不能加载redis,是因为缺少redis和r

24、uby的接口,使用gem 安装错误内容:/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require: no such file to load - redis (LoadError)from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in requirefrom ./redis-trib.rb:25执行命令:gem install redis错误内容:ERR Node 172.168.63.202:7001 is no

25、t empty. Either the nodealready knows other nodes (check with CLUSTER NODES) or contains somekey in database 0.解决方法:1)、将需要新增的节点下aof、rdb等本地备份文件删除;2)、同时将新Node的集群配置文件删除,即:删除你redis.conf里面cluster-config-file所在的文件【即nodes.conf】;3)、再次添加新节点如果还是报错,则登录新节点./redis-clih x p对数据库进行清除:127.0.0.1:7001 flushdb#清空当前数据库三

26、、Redis3.0以上版本具体的配置项详解:#redis.conf# Redis configuration file example.# ./redis-server /path/to/redis.conf# INCLUDES #这在你有标准配置模板但是每个redis服务器又需要个性设置的时候很有用。# include /path/to/local.conf# include /path/to/other.conf# GENERAL #是否在后台执行,yes:后台运行;no:不是后台运行(老版本默认)daemonize yes#3.2里的参数,是否开启保护模式,默认开启。要是配置里没有指定b

27、ind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码 和bind,可以开启。否 则最好关闭,设置为no。protected-mode yes#redis的进程文件pidfile /var/run/redis/redis-server.pid#redis监听的端口号。port 6379#此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度, 当然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linux的默认参数值是128。当系统并发量大并且客户端速度缓慢的时候,可以将这二个参数一起参考设定。该

28、内核参数默认值一般是128,对于负载很大的服务程序来说大大的不够。一般会将它修改为2048或者更大。在/etc/sysctl.conf中添加:net.core.somaxconn = 2048,然后在终端中执行sysctl -p。tcp-backlog 511#指定 redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求bind 127.0.0.1#配置unix socket来让redis支持监听本地连接。# unixsocket /var/run/redis/redis.sock#配置unix socket使用文件的权限# unixsocketperm 700# 此

29、参数为设置客户端空闲超过timeout,服务端会断开连接,为0则服务端不会主动断开连接,不能小于0。timeout 0#tcp keepalive参数。如果设置不为0,就使用配置tcp的SO_KEEPALIVE值,使用keepalive有两个好处:检测挂掉的对端。降低中间设备出问题而导致网络看似连接却已经与对端端口的问题。在Linux内核中,设置了keepalive,redis会定时给对端发送ack。检测到对端关闭需要两倍的设置值。tcp-keepalive 0#指定了服务端日志的级别。级别包括:debug(很多信息,方便开发、测试),verbose(许多有用的信息,但是没有debug级别信息

30、多),notice(适当的日志级别,适合生产环境),warn(只有非常重要的信息)loglevel notice#指定了记录日志的文件。空字符串的话,日志会打印到标准输出设备。后台运行的redis标准输出是/dev/null。logfile /var/log/redis/redis-server.log#是否打开记录syslog功能# syslog-enabled no#syslog的标识符。# syslog-ident redis#日志的来源、设备# syslog-facility local0#数据库的数量,默认使用的数据库是DB 0。可以通过”SELECT “命令选择一个dbdatabases 16#

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1