Redis集群安装
redis3.0.2 分布式集群安装详细步骤
redis3.0.2 分布式集群安装详细步骤--(centos5.8 X64系统)版本历史一: redis cluster介绍篇1:redis cluster的现状目前redis支持的cluster特性(已亲测):1):节点自动发现2):slave->master 选举,集群容错3):Hot resharding:在线分片4):进群管理:cluster xxx5):基于配置(nodes-port.conf)的集群管理6):ASK 转向/MOVED 转向机制.2:redis cluster 架构1)redis-cluster架构图架构细节:(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value2) redis-cluster选举:容错(1)领着选举过程是集群中所有master参与,如果半数以上master节点与master 节点通信超过(cluster-node-timeout),认为当前master节点挂掉.(2):什么时候整个集群不可用(cluster_state:fail),当集群不可用时,所有对集群的操作做都不可用,收到((error) CLUSTERDOWN The cluster is down)错误a:如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成进群的slot映射[0-16383]不完成时进入fail状态.b:如果进群超过半数以上master挂掉,无论是否有slave集群进入fail状态.二.Redis集群安装篇(centos5.8 X64系统)(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)127.0.0.1:7000127.0.0.1:7001127.0.0.1:7002127.0.0.1:7003127.0.0.1:7004127.0.0.1:70051:下载redis。
redis下载安装教程
redis下载安装教程以下是Redis的下载安装教程,内容中不包含与标题相同的文字。
1. 在Redis的官方网站上(https://redis.io/)找到"Download"页面。
2. 在"Download"页面上,找到最新版本的Redis,并点击下载链接。
选择适合你操作系统的版本。
3. 下载完成后,将Redis文件解压到你想要安装的目录。
例如,可以将其解压到"C:\Redis"目录下。
4. 打开解压后的Redis目录,并找到"redis.conf"文件。
这是Redis的配置文件,可以根据需要进行修改。
5. 打开命令行界面(Command Prompt)并进入Redis的安装目录。
6. 在命令行中输入"redis-server.exe redis.conf",然后按下回车键,启动Redis服务器。
7. 如果一切顺利,你应该会看到一些Redis服务器的信息,表示Redis已成功运行。
8. 另外打开一个命令行界面(不要关闭之前的命令行界面),进入Redis的安装目录。
9. 在命令行中输入"redis-cli.exe",然后按下回车键,启动Redis命令行客户端。
10. 如果一切顺利,你应该会看到Redis命令行提示符,表示你已成功连接到Redis服务器。
11. 现在你可以在Redis命令行中输入各种Redis命令,来操作Redis数据库了。
例如,可以使用"SET key value"命令设置键值对,使用"GET key"命令获取键的值等等。
12. 当你完成Redis的使用后,可以使用"SHUTDOWN"命令关闭Redis服务器。
以上是Redis的下载安装教程。
根据这些步骤,你应该能够成功下载并安装Redis,并开始使用它。
基于Redis6.2.6版本部署Redis
基于Redis6.2.6版本部署Redis Cluster 集群的问题⽬录1.Redis6.2.6简介以及环境规划2.⼆进制安装Redis 程序2.1.⼆进制安装redis6.2.62.2.创建Reids Cluster 集群⽬录3.配置Redis Cluster 三主三从交叉复制集群3.1.准备六个节点的redis 配置⽂件3.2.将六个节点全部启动3.3.配置集群节点之间相互发现3.4.为集群中的充当Master 的节点分配槽位3.5.配置三主三从交叉复制模式4.快速搭建Redis Cluster 集群1.Redis6.2.6简介以及环境规划在Redis6.x 版本中主要增加了多线程的新特性,多线性对于⾼并发场景是⾮常有必要的。
多线程IO 重新设计了客户端缓存功能RESP3协议⽀持SSLACL 权限控制提升了RDB ⽇志加载速度发布官⽅的Redis 集群代理模块 Redis Cluster proxyRedis Cluster 集群原理可以查看之前发布的⽂章。
IP 主机名端⼝号节点192.168.20.10redis-cluster 6701master192.168.20.10redis-cluster 6702slave—>6705的master192.168.20.10redis-cluster 6703master192.168.20.10redis-cluster 6704slave—>6701的master192.168.20.10redis-cluster 6705master192.168.20.10redis-cluster 6706slave—>6703的master Reids 集群采⽤三主三从交叉复制架构,由于服务器数量有限,在⼀台机器中模拟出集群的效果,在实际⽣产环境中,需要准备三台机器,每台机器中分别部署两台Redis 节点,⼀主⼀从,交叉备份。
【搭建rediscluster集群,JedisCluster带密码访问解决当中各种坑!】
【搭建rediscluster集群,JedisCluster带密码访问解决当中各种坑!】⼀.搭建redis单机本⽂搭建redis3.0版本,3.0主要增加了redis cluster集群功能。
2.解压源码:tar -zxvf redis-3.0.0.tar.gz3.编译源码:cd /usr/local/redis-3.0.0make4.安装到指定⽬录: cd /usr/local/redis-3.0.0make PREFIX=/usr/local/redis install5.进⼊源码⽬录,将redis.conf拷贝到安装路径:cd /usr/local/redismkdir confcp /usr/local/redis-3.0.0/redis.conf /usr/local/redis/bin6.修改redis.conf配置⽂件,以后端模式启动:daemonize yes7.启动redis:cd /usr/local/redis ./bin/redis-server ./redis.conf //在何处启动的server,⼀些配置⽂件就默认在该处⽣成(如果配置的相对路径)8.redis.conf配置⽂件主要配置:port 7001 //监听的端⼝# bind 127.0.0.1 //绑定ip,只允许该ip访问,不填默认为*,表⽰允许所有ip访问requirepass "你的密码" //开启密码loglevel debug //⽇志级别,开发模式尽量选⽤debuglogfile "redis.log" //⽇志⽂件路径,此处使⽤相对路径,将⽣成到/usr/local/redis下maxmemory 100000000 //允许最⼤内存占⽤100mappendonly yes //启⽤aofauto-aof-rewrite-percentage 80 //部署在同⼀机器的多个redis实例,建议把auto-aof-rewrite错开(可分别写80-100不等),防⽌瞬间fork,所有redis进程做rewrite,占⽤⼤量内存9.jedis连接redis单机:1<dependency>2<groupId>redis.clients</groupId>3<artifactId>jedis</artifactId>4<version>2.7.0</version>5</dependency>连接池整合spring:<!-- redis连接池(单例) --><bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="close"><constructor-arg name="poolConfig" ref="jedisPoolConfig"/><constructor-arg name="host" value="${redis.host}"/><constructor-arg name="port" value="${redis.port}"/><constructor-arg name="timeout" value="${redis.timeout}"/><constructor-arg name="password" value="${redis.pass}"/></bean><!-- 连接池配置 --><bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"><!-- 最⼤连接数 --><property name="maxTotal" value="150"/><!-- 最⼤空闲连接数 --><property name="maxIdle" value="30"/><!-- 最⼩空闲连接数 --><property name="minIdle" value="10"/><!-- 获取连接时的最⼤等待毫秒数,⼩于零:阻塞不确定的时间,默认-1 --><property name="maxWaitMillis" value="3000"/><!-- 每次释放连接的最⼤数⽬ --><property name="numTestsPerEvictionRun" value="100"/><!-- 释放连接的扫描间隔(毫秒) --><property name="timeBetweenEvictionRunsMillis" value="3000"/><!-- 连接最⼩空闲时间 --><property name="minEvictableIdleTimeMillis" value="1800000"/><!-- 连接空闲多久后释放, 当空闲时间>该值且空闲连接>最⼤空闲连接数时直接释放 --><property name="softMinEvictableIdleTimeMillis" value="10000"/><!-- 在获取连接的时候检查有效性, 默认false --><property name="testOnBorrow" value="true"/><!-- 在空闲时检查有效性, 默认false --><property name="testWhileIdle" value="true"/><!-- 在归还给pool时,是否提前进⾏validate操作 --><property name="testOnReturn" value="true"/><!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true --><property name="blockWhenExhausted" value="false"/></bean>1 @RunWith(SpringJUnit4ClassRunner.class) // 指定测试⽤例的运⾏器这⾥是指定了Junit42 @ContextConfiguration("classpath:spring/application*.xml")3public class RedisTest {4 @Autowired5private JedisPool pool;6 @Test7public void testJedisPool() {8 Jedis jedis = null;9 String name = null;10try {11 jedis = pool.getResource();12 jedis.set("testName", "RCL");13 name = jedis.get("testName");14 } catch (Exception ex) {15 ex.printStackTrace();16 } finally {17if (jedis != null) {18// 返回给池19 jedis.close();20 }21 Assert.assertEquals("RCL", name);22 }23 }10.如果连接不上,可查看是否防⽕墙没有将redis端⼝开放:/etc/sysconfig/iptables添加:-A INPUT -p tcp -m state --state NEW -m tcp --dport 7001 -j ACCEPT //7001即redis端⼝重启防⽕墙⼆、搭建redis集群1.安装ruby环境集群管理⼯具redis-trib.rb依赖ruby环境(1)安装ruby:yum install ruby yum install rubygems(2)安装ruby和redis的接⼝程序:拷贝redis-3.0.0.gem⾄/usr/local。
Redis集群Redis-cluster搭建及故障、性能测试
Redis集群Redis-cluster搭建及故障、性能测试⼀、Redis集群部署三台物理机:172.20.0.17、172.20.0.18、172.20.0.19⼆、安装Redis下载安装redis压缩包解压压缩包,进⼊redis-5.0.2⽂件夹,运⾏命令./make install安装redismv redis-5.0.2 /usr/local/redis/三、修改配置⽂件node1--17服务器:1、创建redis_cluster/700X的⽬录mkdir -p /usr/local/redis/redis_cluster/7001mkdir -p /usr/local/redis/redis_cluster/70022、修改Redis.conf的端⼝cp redis.conf /usr/local/redis/redis_cluster/7001修改端⼝为7001cp redis.conf /usr/local/redis/redis_cluster/7002修改端⼝为70023、同时将修改后的Redis.conf复制到另外两个节点(18、19)4、将redis-server复制到节点⽬录下,⽅便操作cp /usr/local/bin/redis-server /usr/local/redis/redis-5.0.2/redis_cluster/7001/5、开启redis-cluster配置,配置做以下改造#配置yes开启redis-clustercluster-enabled yes#配置节点之间超时时间cluster-node-timeout 15000#这个配置很重要,cluster开启必须重命名指定cluster-config-file,不能与别的节点相同,否则会启动失败,最好按主机+端⼝命名cluster-config-file nodes-17-7001.conf四、启动各节点17、18、19Rediscd /usr/local/redis/redis-5.0.2/redis_cluster/7001./redis-server redis.confcd /usr/local/redis/redis-5.0.2/redis_cluster/7002./redis-server redis.conf五、创建集群命令cd /usr/local/bin./redis-cli --cluster create 172.20.0.17:7001 172.20.0.18:7001 172.20.0.19:7001 172.20.0.17:7002 172.20.0.18:7002 172.20.0.19:7002 --cluster-replicas 1(replicas1 表⽰我们希望为集群中的每个主节点创建⼀个从节点。
linux下Redis安装详解
Redis安装Redis是一种高级key-value数据库。
它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。
有字符串,链表,集合和有序集合。
支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。
所以Redis也可以被看成是一个数据结构服务器。
Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。
一、下载最新版wget /files/redis-2.0.4.tar.gz二、解压缩tar redis-2.0.4.tar.gz三、安装C/C++的编译组件(非必须)apt-get install build-essential四、编译cd redis-2.0.4makemake命令执行完成后,会在当前目录下生成本个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-stat,它们的作用如下:redis-server:Redis服务器的daemon启动程序redis-cli:Redis命令行操作工具。
当然,你也可以用telnet根据其纯文本协议来操作redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况在后面会有这几个命令的说明,当然是从网上抄的。
五、修改配置文件/etc/sysctl.conf添加vm.overcommit_memory=1刷新配置使之生效sysctl vm.overcommit_memory=1补充介绍:**如果内存情况比较紧张的话,需要设定内核参数:echo 1 > /proc/sys/vm/overcommit_memory内核参数说明如下:overcommit_memory文件指定了内核针对内存分配的策略,其值可以是0、1、2。
详解redisdesktopmanager安装及连接方式
详解redisdesktopmanager安装及连接⽅式1、下载安装包
官⽹下载需要付费使⽤
再此附上⼀个免费的破解版本,绿⾊安全可⽤
提取码:528k
下载完后后直接打开exe
2、安装
直接下⼀步
同意协议
选择安装位置,我选择安装在F盘,点击下⼀步等待安装
点击运⾏
启动以后的界⾯
3、连接redis数据库
如果需求⽤集群⽅式链接的话,如下操作;
勾选集群完毕后,链接⼀个单点redis则相当于链接了整个redis集群,否则则认为只做单点链接
完成之后则可以打开redis的数据库,查看key和value
总结
以上所述是⼩编给⼤家介绍的redis desktop manager安装及连接⽅式,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
在此也⾮常感谢⼤家对⽹站的⽀持!
如果你觉得本⽂对你有帮助,欢迎转载,烦请注明出处,谢谢!。
python连接redis哨兵集群
python连接redis哨兵集群⼀.redis集群模式有多种, 哨兵模式只是其中的⼀种实现⽅式, 其原理请⾃⾏⾕歌或者百度⼆.python 连接 redis 哨兵集群 1. 安装redis包pip install redis 2.实现连接逻辑from redis.sentinel import Sentinelfrom redis import WatchErrorMYSETINEL = NoneMASTER = NoneSLAVE = None# 1.redis 哨兵模式集群最少需要⼀主三从, 三哨兵# 2.redis 哨兵集群所有主从节点都完整的保存了⼀份数据SENTINEADDRESS = [('127.0.0.1', 6390), ('127.0.0.1', 6391), ('127.0.0.1', 6392)]def get_redis_conn():global MYSETINELglobal MASTERglobal SLAVE# 如果哨兵连接实例已存在, 不重复连接, 当连接失效时, 重新连接if not MYSETINEL:# 连接哨兵MYSETINEL = Sentinel(SENTINEADDRESS, socket_timeout=2000) # 尝试连接最长时间单位毫秒, 1000毫秒为1秒# 通过哨兵获取主数据库连接实例参数1: 主数据库的名字(集群部署时在配置⽂件⾥指明)MASTER = MYSETINEL.master_for('seckill', socket_timeout=2000)# 通过哨兵获取从数据库连接实例参数1: 从数据的名字(集群部署时在配置⽂件⾥指明)SLAVE = MYSETINEL.slave_for('seckill', socket_timeout=2000)# 每次都先尝试⽣成连接实例get_redis_conn()# 往主数据库写⼊数据def setcache(key, time, value):global MASTERif MASTER:return MASTER.setex(key, time, value)else:return False# 从从数据库读取数据def getcache(key):global SLAVEif SLAVE:return SLAVE.get(key)else:return False 3. 使⽤⽰例1: 使⽤管道尝试修改商品库存from redis import WatchError# 使⽤事物修改商品库存def update_stock(key):global MASTERwith MASTER.pipeline() as pipe:i = 0while i < 10: # 尝试修改库存10次try:# watch库存键, multi后如果该key被其他客户端改变, 事务操作会抛出WatchError异常pipe.watch(key)count = int(pipe.get(key)) # 取库存# 可以修改库存if count > 0:pipe.set(key, count-1) # 保存剩余库存# 事务结束, 把命令推送过去result = pipe.execute() # execute返回命令执⾏结果列表, return True, result# 库存不⾜else:pipe.unwatch()return Falseexcept WatchError as e:print(e)i += 1continuefinally:pipe.reset()。
redis集群搭建及配置
redis主从服务器搭建修改记录目录redis主从服务器搭建 (1)一.redis主从服务器搭建 (2)第一步:下载redis (2)第二步:解压redis tar包 (2)第三步:进入reidis目录 (2)第四步:make (2)第五步:make install (3)第六步:修改redis.conf 操作 (3)第七步:redis从服务器配置 (4)第八步:修改从服务redis.conf (4)二.redis测试 (4)第一步:编写redis客户端启动shell (4)第二步:启动客户端 (5)第三步:操作 (5)第四步:set name test (5)第五步:get name (5)第六步:从服务器端启动客户端 (5)第七步:从服务器端(10.105.76.100) get name (5)三.sentinel配置及启动 (5)第一步:修改sentinel.conf (6)第二步启动sentinel (6)第三步:启动sentinel (6)一.redis主从服务器搭建第一步:下载redis在redis官网下载redis2.8.17版本第二步:解压redis tar包将下载的redis-2.8.17.tar.gz放在10.105.76.99(主服务器)上/usr/local下然后解压tar包命令:tar -zxvf redis-2.8.17.tar.gz第三步:进入reidis目录进入redis-2.8.17目录命令: cd redis-2.8.17第四步:makemake 或者make MALLOC=libc 如果使用make时报错(zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory)此时可使用make MALLOC=libc出现下图说明make完成第五步:make install第六步:修改redis.conf 操作进入redis安装目录cd /usr/local/redis-2.8.17,vi redis.conf将daemonize no改为yes ,意思是在后台运行logfile改为log的存放路径requirepass 前面的#去掉后面改为itmiredis此处为密码前六步已经完成了redis主端的安装及配置,如果需要可以写一个启动redis的shell脚本,touch start.sh,vi start.sh 里面的内容为src/redis-server redis.conf第七步:redis从服务器配置将安装好的redis拷贝到从服务器(10.105.76.100) 命令scp -r /usr/local/redis-2.8.17root@10.105.76.100:/usr/local第八步:修改从服务redis.conf拷贝完成后进入从服务器(10.105.76.100) ,cd /usr/local/redis-2.8.17,修改redis.confslaveof ip(10.105.76.99) 端口(6379) 此处为主服务的ip和端口因为主服务上设置了密码所以需要修改masterauth ,并将requirepass注释掉此时redis主从应配置完成通过start.sh分别启动redis(10.105.76.99)和(10.10.576.100) 通过ps -ef|grep redis查看进程,出现如下图说明redis启动完成二.redis测试第一步:编写redis客户端启动shell可以写一个shell脚本启动redis客户端cd /usr/local/redis-2.8.17/,touch startcli.sh,vi startcli.sh startcli.sh内容为src/redis-cli,并将此文件拷贝到从服务器10.105.76.100第二步:启动客户端在主服务器端(10.105.76.99) 命令:sh startcli.sh第三步:操作输入密码auth itmiredis第四步:set name test第五步:get name第六步:从服务器端启动客户端从服务器端启动客户端(10.105.76.100),sh startcli.sh第七步:从服务器端(10.105.76.100) get name此时说明主从服务已经搭建完成。
redis 集群安装(redis-trib.rb)
redisredis-trib.rb安装集群一、redis安装1.下载地址:$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz 2.解压缩$ tar xzf redis-3.2.8.tar.gz3.编译$ln -s redis-3.2.8 redis建立软链接,有利于未来升级,是一个比较好的做法$ cd redis$ make编译,有的时候会报错a、确保安装gccb、fatal error: jemalloc/jemalloc.h: No such file or directory 解决办法:make MALLOC=libc$make install安装放入到/usr/local/bin$redis-cli -v查看redis版本redis集群一般由多个节点组成,节点数量至少6个才能保证组成完整高可用的集群。
操作系统centos7.2-mini版一、redis安装略二、使用redis-trib.rb 安装工具1、安装rubyyum install ruby -y2、安装rubygemredis依赖wget /downloads/redis-3.3.0.gemgem install -l redis-3.3.0 gemcp /{redishome}/scr/redis-trib.rb /usr/local/bin3、测试redis-trib.rb二、准备节点1、创建文件夹mkdir /redis-cluster-tribcd /redis-cluster-tribmkdir 6379 6380 6381 6382 6383 63842、创建并配置redis.conf分别在6379-6384六个文件夹中创建redis-node.conf文件,并添加配置,配置内容如下redis-6379.conf,每个文件根据对应名修改一下vim redis-6379.confport 6379daemonize yeslogfile "6379.log"dbfilename "dump-6379.rdb"dir "/redis-cluster-trib/6379/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6379.conf"vim redis-6380.confport 6380daemonize yeslogfile "6380.log"dbfilename "dump-6380.rdb"dir "/redis-cluster-trib/6380/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6380.conf"vim redis-6381.confport 6381daemonize yeslogfile "6381.log"dbfilename "dump-6381.rdb"dir "/redis-cluster-trib/6381/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6381.conf"vim redis-6382.confport 6382daemonize yeslogfile "6382.log"dbfilename "dump-6382.rdb"dir "/redis-cluster-trib/6382/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6382.conf"vim redis-6383.confport 6383daemonize yeslogfile "6383.log"dbfilename "dump-6383.rdb"dir "/redis-cluster-trib/6383/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6383.conf"vim redis-6384.confport 6384daemonize yeslogfile "6384.log"dbfilename "dump-6384.rdb"dir "/redis-cluster-trib/6384/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6384.conf"3、启动各个节点redis-server redis-6379.confredis-server redis-6380.confredis-server redis-6381.confredis-server redis-6382.confredis-server redis-6383.confredis-server redis-6384.conf4、检查启动情况cat 6379/6379.logcat 6380/6380.logcat 6381/6381.logcat 6382/6382.logcat 6383/6383.logcat 6384/6384.logps -ef |grep redis四、创建集群1、创建集群redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384replicas 表示为每个主节点设置多少个从节点,如果部署节点使用不同的ip,会尽可能保证主从不在一个节点上2、健康性检查redis-trib.rb check 127.0.0.1:6380四、扩容集群1、添加2个节点mkdir 6385 6386vim redis-6385.confport 6385daemonize yeslogfile "6385.log"dbfilename "dump-6385.rdb"dir "/redis-cluster-trib/6385/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6385.conf"vim redis-6386.confport 6386daemonize yeslogfile "6386.log"dbfilename "dump-6386.rdb"dir "/redis-cluster-trib/6386/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6386.conf"2、启动节点redis-server redis-6385.confredis-server redis-6386.conf3、添加入集群redis-trib.rb add-node 127.0.0.1:6385 127.0.0.1:6379redis-trib.rb add-node 127.0.0.1:6386 127.0.0.1:6379注意这里还是显示为主节点,要设置它为从节点要redis-trib.rb add-node 127.0.0.1:6386 127.0.0.1:6379 --slave --master-id<arg> 或者看后面变化(在缩减章节)4、迁移槽redis-trib.rb info127.0.0.1:6379可以看到各个主节点槽情况5、批量迁移redis-trib.rbreshard 127.0.0.1:6379数据迁移之前会打印迁移计划,确认后进行迁移四、收缩集群跟上面一样,将要清空节点移至其他节点上。
安装Redis完整过程
概述首先报告一下我系统的版本:Java代码1.[root@firefish init.d]# cat /etc/issue系统版本信息如下:引用CentOS release 6.4 (Final)Kernel \r on an \m安装Redis希望将Redis安装在此目录下:引用/usr/local/redis参考http://redis.io/download的安装说明,做调整:引用$ mkdir /usr/local/redis$ cd /usr/local/src$ wget /files/redis-2.6.14.tar.gz$ tar xzf redis-2.6.14.tar.gz$ ln -s redis-2.6.14 redis #建立一个链接$ cd redis$ make PREFIX=/usr/local/redis install #安装到指定目录中注意上面的最后一行,我们通过PREFIX指定了安装的目录。
如果make失败,一般是你们系统中还未安装gcc,那么可以通过yum安装之:Java代码1.yum install gcc安装完成后,则执行make.在安装redis成功后,你将可以在/usr/local/redis看到一个bin的目录,里面包括了以下文件:Java代码1.redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server将Redis做成一个服务1.复制脚本到/etc/rc.d/init.d目录按以上步骤安装Redis时,其服务脚本位于:Java代码1./usr/local/src/redis/utils/redis_init_script必须将其复制到/etc/rc.d/init.d的目录下:Java代码1.cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis以下将redis_init_script复制到/etc/rc.d/init.d/,同时易名为redis。
Redis集群使用指南
Redis集群使用指南一、Redis集群简介Redis(Remote Dictionary Server)是一个开源的基于内存的键值对存储系统,经常用来作为缓存、消息队列和数据库。
在实际使用过程中,Redis可能会出现性能瓶颈和单点故障。
为了解决这些问题,Redis提供了集群模式。
Redis集群是对多个Redis节点进行逻辑分区和复制,从而实现高可用、高性能和可伸缩性。
Redis集群能够自动进行故障转移和重新分配,可以提供更好的可靠性和吞吐量。
二、Redis集群的工作原理Redis集群采用哈希槽(Hash Slot)的方式来实现数据的分片和复制。
一个Redis集群可以包含多个Redis节点,每个节点管理一部分哈希槽。
当客户端需要对某个键进行操作时,Redis首先计算该键对应的哈希值,然后将其分配到某个哈希槽中。
Redis集群根据哈希槽的分配情况,将该键的操作转发给相应的Redis节点进行处理。
如果某个节点出现故障,Redis集群会自动将该节点管理的哈希槽重新分配给其他节点。
Redis集群采用主从复制的方式来实现数据的持久化和高可用。
每个主节点可以有多个从节点,主节点负责处理读写请求,同时将数据复制到从节点。
如果主节点出现故障,其中的一个从节点会被自动选举为新的主节点,继续处理客户端请求。
三、搭建Redis集群的步骤1、安装Redis节点在Linux系统上安装Redis比较简单,可以使用以下命令:sudo apt-get updatesudo apt-get install redis-server安装完毕后,可以通过以下命令启动Redis服务:sudo service redis-server start2、配置Redis节点每个Redis节点都需要进行一些配置,以便加入到Redis集群中。
可以通过以下命令进入Redis配置文件:sudo vim /etc/redis/redis.conf需要修改的配置项有以下几个:cluster-enabled yes:启用Redis集群模式。
redis使用方法
redis使用方法Redis是一款开源的高性能内存键值存储数据库,它支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合等。
Redis是一种非关系型数据库,它的特点是速度快、可扩展性好、数据持久化、应用场景广泛等。
本文将介绍Redis的使用方法,包括Redis的安装、配置、基本命令、数据结构、事务和持久化等方面。
通过本文的学习,读者可以了解Redis的基本使用方法,为使用Redis提供帮助。
一、Redis的安装Redis的安装可以通过源码编译安装或者使用包管理工具安装。
下面以Ubuntu为例,介绍Redis的安装过程。
1. 使用包管理工具安装Ubuntu系统可以通过apt-get命令安装Redis。
打开终端,输入以下命令:sudo apt-get updatesudo apt-get install redis-server安装完成后,可以通过以下命令查看Redis是否已经安装成功: redis-cli ping如果返回“PONG”表示Redis已经安装成功。
2. 源码编译安装如果需要使用最新版本的Redis,可以通过源码编译安装。
首先需要下载Redis的源码包,可以从Redis官网(https://redis.io/)下载最新版本的源码包。
下载完成后,解压源码包,进入解压后的文件夹,执行以下命令进行编译和安装:makemake install安装完成后,可以通过以下命令启动Redis服务:redis-server二、Redis的配置Redis的配置文件是redis.conf,它包含了Redis的各种配置选项。
在Ubuntu系统中,配置文件位于/etc/redis/redis.conf。
下面介绍一些常用的Redis配置选项。
1. bindbind选项指定Redis监听的IP地址,如果不指定,Redis将监听所有的IP地址。
可以通过以下命令指定Redis监听的IP地址: bind 127.0.0.12. portport选项指定Redis监听的端口号,默认为6379。
REDIS+KEEPALIVED+HAPROXY 集群,负载均衡,主备自动切换安装手册
REDIS集群,KEEPALIVED+HAPROXY负载均衡,主备自动切换安装手册服务器环境:centos6.3机器1:redis主节点(172.16.8.21:6379)从节点(172.16.8.21:63791)从节点(172.16.8.21:63792)机器2:从节点172.16.8.22:63793从节点172.16.8.23:63794一、REDIS集群安装进入机器1:mkdir /usr/local/redismkdir /usr/local/redis/data1 下载redis,进入/usr/local/src目录2 wget http://download.redis.io/releases/redis-2.8.9.tar.gz3 tar xvf redis-2.8.9.tar.gz4 cd redis-2.8.95 make && make install6 cp redis.conf /usr/local/bin7 cd /usr/local/bin8 cp redis.conf redis-slave19 cp redis.conf redis-slave210 vi redis.conf11 搜索dind设为172.16.8.21dir 设为/usr/local/redis/datadaemonize 设为yes12 vi redis-slave113 搜索bind 设为172.16.8.21pidfile 设为/var/run/redis-slave1.piddbfilename设为dump-slave1.rdbdir设为/usr/local/redis/dataport 设为63791将slaveof前面的#号去掉,改为slaveof 172.16.8.21 6379 daemonize 设为yes14 vi redis-slave215 搜索bind 设为172.16.8.21pidfile 设为/var/run/redis-slave2.piddbfilename设为dump-slave2.rdbdir设为/usr/local/redis/dataport 设为63792将slaveof前面的#号去掉,改为slaveof 172.16.8.21 6379 daemonize 设为yes16redis-server redis.confredis-server redis-slave1redis-server redis-slave2进入机器2mkdir /usr/local/redismkdir /usr/local/redis/data1 下载redis,进入/usr/local/src目录2 wget http://download.redis.io/releases/redis-2.8.9.tar.gz3 tar xvf redis-2.8.9.tar.gz4 cd redis-2.8.95 make && make install6 cp redis.conf /usr/local/bin7 cd /usr/local/bin8 cp redis.conf redis-slave39 cp redis.conf redis-slave410 vi redis-slave311 搜索bind 设为172.16.8.22pidfile 设为/var/run/redis-slave3.piddbfilename设为dump-slave3.rdbdir设为/usr/local/redis/dataport 设为63793将slaveof前面的#号去掉,改为slaveof 172.16.8.21 6379daemonize 设为yes12 vi redis-slave413 搜索bind 设为172.16.8.22pidfile 设为/var/run/redis-slave4.piddbfilename设为dump-slave4.rdbdir设为/usr/local/redis/dataport 设为63794将slaveof前面的#号去掉,改为slaveof 172.16.8.21 6379daemonize 设为yes14 redis-server redis-slave315 redis-server redis-slave4到现在已完成redis集群配置,且只有172.16.8.21 6379可写数据,其余slave机器只能读数据redis-cli -h 172.16.8.21 -p 6379info可以看到这样子就是成功了二、安装haproxy进入机器1cd /usr/loca/srcwget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.25.tar.gztar xvf http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.25.tar.gzcd haproxy-1.4.25make TARGET=linux26 PREFIX=/usr/local/haproxymake install PREFIX=/usr/local/haproxycd /usr/local/haproxyvi haproxy.cfg添加下面内容# this config needs haproxy-1.1.28 or haproxy-1.2.1globallog 172.16.8.21 local0#log 172.16.8.21 local1 notice#log loghost local0 infomaxconn 4096chroot /usr/local/haproxyuid 99gid 99daemon#debugquietnbproc 2pidfile /usr/local/haproxy/haproxy.piddefaultslog globalmode httpoption httplogoption dontlognulllog 172.16.8.21 local3 inforetries 3redispatchmaxconn 3000contimeout 5000clitimeout 50000srvtimeout 50000listen cluster 0.0.0.0:63790mode tcpbalance roundrobinoption forwardforserver redis-slave1 172.16.8.21:63791 weight 100 check inter 2000 rise 2 fall 3 server redis-slave2 172.16.8.21:63792 weight 100 check inter 2000 rise 2 fall 3 server redis-slave3 172.16.8.22:63793 weight 100 check inter 2000 rise 2 fall 3 server redis-slave4 172.16.8.22:63794 weight 100 check inter 2000 rise 2 fall 3listen 172.16.8.21 *:8888mode http#transparentstats refresh 10sstats uri /haproxyadminstats realm Haproxy \ statisticstats auth admin:adminstats hide-version保存加上日志支持 vi /etc/rsyslog.conf在最下边增加local3.* /var/log/haproxy.loglocal0.* /var/log/haproxy.logvi /etc/sysconfig/rsyslog修改: SYSLOGD_OPTIONS="-r -m 0"重启日志服务service rsyslog restart进入机器2cd /usr/loca/srcwget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.25.tar.gz tar xvf http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.25.tar.gz cd haproxy-1.4.25make TARGET=linux26 PREFIX=/usr/local/haproxymake install PREFIX=/usr/local/haproxycd /usr/local/haproxyvi haproxy.cfg添加下面内容# this config needs haproxy-1.1.28 or haproxy-1.2.1globallog 172.16.8.22 local0#log 172.16.8.22 local1 notice#log loghost local0 infomaxconn 4096chroot /usr/local/haproxyuid 99gid 99daemon#debugquietnbproc 2pidfile /usr/local/haproxy/haproxy.piddefaultslog globalmode httpoption httplogoption dontlognulllog 172.16.8.22 local3 inforetries 3redispatchmaxconn 3000contimeout 5000clitimeout 50000srvtimeout 50000listen cluster 0.0.0.0:63790mode tcpbalance roundrobinoption forwardforserver redis-slave1 172.16.8.21:63791 weight 100 check inter 2000 rise 2 fall 3 server redis-slave2 172.16.8.21:63792 weight 100 check inter 2000 rise 2 fall 3 server redis-slave3 172.16.8.22:63793 weight 100 check inter 2000 rise 2 fall 3 server redis-slave4 172.16.8.22:63794 weight 100 check inter 2000 rise 2 fall 3 listen 172.16.8.22*:8888mode http#transparentstats refresh 10sstats uri /haproxyadminstats realm Haproxy \ statisticstats auth admin:adminstats hide-version保存加上日志支持 vi /etc/rsyslog.conf在最下边增加local3.* /var/log/haproxy.loglocal0.* /var/log/haproxy.logvi /etc/sysconfig/rsyslog修改: SYSLOGD_OPTIONS="-r -m 0"重启日志服务service rsyslog restart三、安装keepalived进入机器1cd /usr/local/srcwget /software/keepalived-1.2.12.tar.gztar xvf keepalived-1.2.12.tar.gzcd keepalived-1.2.12./configuremake&&make install注:若这里报错提示没有装openssl,则执行yum –y install openssl-devel安装,若还有其他的包没装,则执行yum命令进行安装cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/mkdir /etc/keepalivedcp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ln -s /usr/local/sbin/keepalived /usr/sbin/vi /etc/keepalived/keepalived.conf将内容改为如下! Configuration File for keepalivedvrrp_script chk_haproxy {script "/etc/keepalived/check_haproxy.sh"interval 2global_defs {router_id LVS_DEVEL}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 150advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_haproxy}virtual_ipaddress {172.16.8.20}}}保存vi /etc/keepalived/check_haproxy.sh添加内容#!/bin/bash#A = `ps -C haproxy --no-header |wc -l`if [[ `ps -C haproxy --no-header |wc -l` -eq 0 ]];thenecho "haproxy not runing,attempt to start up."/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfgsleep 3if [[ `ps -C haproxy --no-header |wc -l` -eq 0 ]];then/etc/init.d/keepalived stopecho "haproxy start failure,stop keepalived"elseecho "haproxy started success"fifi注意`这个符号不是单引号,是esc下面那个键进入机器2cd /usr/local/srcwget /software/keepalived-1.2.12.tar.gztar xvf keepalived-1.2.12.tar.gzcd keepalived-1.2.12./configuremake&&make install注:若这里报错提示没有装openssl,则执行yum –y install openssl-devel安装,若还有其他的包没装,则执行yum命令进行安装cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ mkdir /etc/keepalivedcp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ ln -s /usr/local/sbin/keepalived /usr/sbin/vi /etc/keepalived/keepalived.conf将内容改为如下! Configuration File for keepalivedvrrp_script chk_haproxy {script "/etc/keepalived/check_haproxy.sh"interval 2global_defs {router_id LVS_DEVEL}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 51priority 120advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_haproxy}virtual_ipaddress {172.16.8.20}}}保存vi /etc/keepalived/check_haproxy.sh添加内容#!/bin/bash#A = `ps -C haproxy --no-header |wc -l`if [[ `ps -C haproxy --no-header |wc -l` -eq 0 ]];thenecho "haproxy not runing,attempt to start up."/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfgsleep 3if [[ `ps -C haproxy --no-header |wc -l` -eq 0 ]];then/etc/init.d/keepalived stopecho "haproxy start failure,stop keepalived"elseecho "haproxy started success"fifi注意`这个符号不是单引号,是esc下面那个键保存在机器1机器2中分别执行service keepalived start然后在浏览器上打开http://172.16.8.20:8888/haproxyadmin用户名和密码是admin只要机器1和机器2中keepalived服务没有同时挂掉,一台机器挂掉后,另一台机器就会绑定172.16.8.20地址,实现主备切换,因此都可以通过172.16.8.20:63790访问该redis 集群Vip压力测试redis-benchmark -h 172.16.8.20 -p 63790 -t get -q -r 1000 -n 100000 -c 800主机器压力测试redis-benchmark -h 172.16.8.21 -p 6379 -t get -q -r 1000 -n 100000 -c 800从节点压力测试redis-benchmark -h 172.16.8.22 -p 63793 -t get -q -r 1000 -n 100000 -c 800本文参考于百度文库地址/link?url=Wd0Z2arJ4wdspy7jw9O1mGZCy2e5GiO4hCIv36 QxoOtNGcFOMG8rPpegmRH_z72Ejc-KAP9Ld2Aieo7DPgmC_b1bXB2BZVSKPTXsoz BNNYi。
Redis-集群 - 三台服务器
Redis-集群安装详细步骤一、Redis集群部署文档(centos6系统)现有三台物理机10.18.154.2 10.18.154.3 10.18.154.4(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)10.18.154.2:700010.18.154.2:700110.18.154.3:700010.18.154.3:700110.18.154.4:700010.18.154.4:7001二、安装Redis(10.18.154.2、10.18.154.3、10.18.154.4)下载redis-3.2.1.tar.gz[root@localhost ~]# tar zxvf redis-3.2.1.tar.gz[root@localhost ~]# cd redis-3.2.1[root@localhost redis-3.2.1]# make[root@localhost redis-3.2.1]# make install[root@localhost ~]# mv redis-3.2.1 /usr/local/redis[root@localhost ~]# cd /usr/local/redis/[root@localhost ~]# mkdir /usr/local/cluster[root@localhost ~]# cp /usr/local/redis/redis.conf /usr/local/cluster/[root@localhost ~]# vi /usr/local/cluster/redis.conf##修改配置文件中的下面选项port 7000bind 10.18.154.2 127.0.0.1daemonize yes#如果你想让它在后台运行,你就把它改成yescluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000appendonly yes[root@localhost ~]# mkdir /usr/local/cluster/7000[root@localhost ~]# mkdir /usr/local/cluster/7001[root@localhost ~]# cp /usr/local/cluster/redis.conf /usr/local/cluster/7000[root@localhost ~]# cp /usr/local/cluster/redis.conf /usr/local/cluster/7001[root@localhost ~]# cp /usr/local/cluster/redis.conf /usr/local/cluster/7002[root@localhost 7000]# redis-server redis.conf ---启动redis服务##注意:拷贝完成之后要修改7001目录下面redis.conf文件中的port参数,分别改为对应的文件夹的名称##启动之后使用命令查看redis的启动情况ps -ef|grep redis三、执行redis的创建集群命令创建集群[root@localhost src]# cd /usr/local/redis/src/[root@localhost src]#./redis-trib.rb create --replicas 1 10.18.154.2:700010.18.154.2:7001 10.18.154.3:7000 10.18.154.3:7001 10.18.154.4:700010.18.154.4:7001执行上面的命令的时候会报错,因为是执行的ruby的脚本,需要ruby的环境错误内容:/usr/bin/env: ruby: No such file or directory所以需要安装ruby的环境,这里推荐使用yum install ruby安装yum install ruby然后再执行创建集群命令,报错,提示缺少rubygems组件,使用yum安装错误内容:./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)from ./redis-trib.rb:24yum install rubygems再次执行创建集群命令,报错提示不能加载redis,是缺少redis、ruby接口,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 `require'gem install redis这里可能无法安装,因为无法连接gem服务器:[root@localhost ~]# gem install redis --version 3.0.0ERROR: Could not find a valid gem 'redis' (= 3.0.0) in any repository#需要手工下载并安装:wget https:///gems/redis-3.2.1.gemgem install -l ./redis-3.2.1.gem输入yes,然后配置完成。
redis使用方法
redis使用方法Redis是一款快速、高性能、非关系型的键值数据库,它支持多种数据结构,包括字符串、哈希、列表、集合和有序集合等。
Redis 被广泛应用于缓存、消息队列、排行榜、实时消息处理、计数器等场景。
本文将介绍Redis的使用方法,包括安装、配置、数据类型、命令等方面。
一、安装RedisRedis可以在Linux、Windows、Mac等操作系统上运行,安装Redis 的方式也有多种。
本文将以Ubuntu为例,介绍如何安装Redis。
1. 安装Redis在终端中输入以下命令安装Redis:sudo apt-get updatesudo apt-get install redis-server2. 启动Redis安装完成后,可以使用以下命令启动Redis:redis-server3. 测试RedisRedis启动后,可以使用以下命令测试Redis是否正常工作: redis-cli ping如果返回“PONG”,表示Redis已经启动并正常工作。
二、配置RedisRedis的配置文件位于/etc/redis/redis.conf,可以使用文本编辑器打开并修改配置文件。
以下是一些常用的配置项:1. 绑定IP地址bind 127.0.0.1默认情况下,Redis只能在本地访问,如果需要远程访问Redis,可以将IP地址改为0.0.0.0。
2. 设置密码requirepass yourpassword为了保护Redis的安全,可以设置密码。
设置密码后,需要在连接Redis时输入密码才能进行操作。
3. 设置内存限制maxmemory 100mbRedis默认不限制内存使用,如果需要限制内存使用,可以设置maxmemory参数。
4. 设置持久化方式save 900 1save 300 10save 60 10000Redis支持多种持久化方式,包括RDB和AOF。
RDB是将Redis的数据快照保存到磁盘上,AOF是将Redis的操作日志保存到磁盘上。
redis安装及一主两从三sentinel配置
Redis安装及一主两从三sentinel配置一.安装Redis(1)cd /usr/src进入下载目录(2) yum install -y wgetgcc make tcl安装依赖(3)tar -zxvf redis-3.2.7.tar.gz 解压(4)cd redis-3.2.7 进入redis目录(5)make 编辑(6)make test 测试对编译不理解的同学可以看看这个 /secondjanuary/article/details/8985795测试过程报错[exception]: Executing test client: NOREPLICAS Not enough good slaves to write.. NOREPLICAS Not enough good slaves to write.while executing这种情况下,可以修改当前目录文件tests/integration/replication-2.tcl,将after 1000改为after 10000以延长等待时间重新测试(7)make install PREFIX=/usr/local/redis PREFIX安装指定目录否则安装到/usr/local/bin里面了(8)启动redis服务 ./redis-server ./redis-conf发现很多错误:1.WARNING: The TCP backlog setting of 511 cannot be enforced because/proc/sys/net/core/somaxconn is set to the lower value of 128echo 511 > /proc/sys/net/core/somaxconn写到/etc/rc.local里面 rc.local是开机启动程序是一个软连接(确定两者都有执行权限)lrwxrwxrwx. 1 root root 13 Aug 2 07:50 /etc/rc.local ->rc.d/rc.local2.WARNINGovercommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to/etc/sysctl.conf and then reboot or run the command'sysctlvm.overcommit_memory=1' for this to take effect.往/etc/sysctl.conf中添加vm.overcommit_memory = 1/sbin/sysctl –p使文件立即生效3.WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issuerun the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis mustbe restarted after THP is disabled.echo never > /sys/kernel/mm/transparent_hugepage/enabled写到/etc/rc.local里面在后台运行的话修改配置redis.conf daemonizeyes 就可以了(9)运行./redis-cli二.Redis配置文件说明(/usr/local/redis/bin)1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonizeyes2. 绑定的主机地址修改主机172.16.0.52配置文件去掉bind注释符#,bind设置成主机ipbind172.16.0.52 127.0.0.1修改主机172.16.0.53配置文件去掉bind注释符#,bind设置成主机ipbind172.16.0.53127.0.0.13修改172.16.0.53机器的配置文件,使53变成52从机器slaveof 172.16.0.52 6379 (172.16.0.52机器不需要操作)4. 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。
从0到1在Linux上搭建Redis6.0的Cluster集群教程
从0到1在Linux上搭建Redis6.0的Cluster集群教程Redis集群模式分三种⽅式:1、主从模式,这⾥通常指的是,主down后,需要⼿动升级从库为主库。
主库⽀持读写,从库只读。
⾄少两个redis实例2、哨兵模式,是1模式的加强,由哨兵模式⾃动选举从库中的某⼀个为主库。
解决⾼可⽤问题。
⾄少三个redis实例3、Cluster集群模式,除了解决⾼可⽤问题外,还解决⼤量数据存储问题,通过slot⽅式路由到不同的服务器组中。
⾄少3台服务器,六个redis实例。
详细的介绍请参阅:https:///miss1181248983/article/details/90056960下⾯介绍如何搭建Cluster集群模式。
1、⾸选准备三台阿⾥云机器,ip分别如下s1:172.16.213.251s2:172.16.213.250s3:172.16.213.246注意:建议尽量不要选择Aliyun Linux操作系统,会遇到各种奇怪奇葩的问题,笔者⽤Aliyun linux花费⼤量时间,并未安装成功,客服也仅仅只给建议,⽆奈换回主流的CenterOS,下⾯是三台服务器的版本情况lsb_release -a2、安装Redis 6.0.10版本的,检查服务器环境是否满⾜gcc -v #检查gcc版本,需要是8.3+的3、安装tcl,否则编译redis的时候不通过,这⾥安装的时候直接使⽤rpm编译好的包执⾏安装即可。
⼩tips:国内有很多linux软件镜像,这⾥采⽤阿⾥云的镜像⽹站https:///packageSearch?word=tcl,点开后直接搜索即可,注意使⽤⾃⼰需要的版本rpm -ivh https:///centos/8.3.2011/BaseOS/x86_64/os/Packages/tcl-8.6.8-2.el8.x86_ 64.rpm?spm=a2c6h.13651111.0.0.70662f7099C6CD&file=tcl-8.6.8-2.el8.x86_64.rpm#使⽤上⾯命令进⾏安装,注意安装的时候要重新获取⼀次rpm安装包地址,输⼊命令回车,⼀会之后再回车⼀次,即可以看到Done安装完成!4、下载Redis,我们默认放到/usr/local/redis-6.0.10⽂件夹cd /usr/localwget https://download.redis.io/releases/redis-6.0.10.tar.gztar -zvxf redis-6.0.10.tar.gzcd redis-6.0.10/make && make test && make install #也可以分步执⾏,看到下⾯截图的命令基本代表已经安装成功了。
Linux下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)
Linux下Redis集群安装部署及使⽤详解(在线和离线两种安装+相关错误解决⽅案)⼀、应⽤场景介绍 本⽂主要是介绍Redis集群在Linux环境下的安装讲解,其中主要包括在联⽹的Linux环境和脱机的Linux环境下是如何安装的。
因为⼤多数时候,公司的⽣产环境是在内⽹环境下,⽆外⽹,服务器处于脱机状态(最近公司要上线项⽬,就是⽆外⽹环境的Linux,被离线安装坑惨了,⾛了很多弯路,说多了都是⾎泪史啊%>_<%)。
这也是笔者写本⽂的初衷,希望其他⼈少⾛弯路,下⾯就介绍如何在Linux安装部署Redis集群。
⼆、安装环境及⼯具 系统:Red Hat Enterprise Linux Server release 6.6 ⼯具:XShell5及Xftp5 安装包:GCC-7.1.0 Ruby-2.4.1 Rubygems-2.6.12 Redis-3.2.9(3.x版本才开始⽀持集群功能)三、安装步骤 要搭建⼀个最简单的Redis集群,我们⾄少需要6个节点:3个Master和3个Slave。
那为什么需要3个Master呢?其实就是⼀个“铁三⾓”的关系,当1个Master下线的时候,其他2个Master 和对应的Salve⽴马就能顶替上去,确保集群能够正常使⽤,如果你之前了解Mongodb/Hadoop/Strom这些的话,你就很容易⽬标⼀般分布式的最低要求基数个数节点,这样便于选举(少数服从多数的原则)。
本⽂当中,我们就偷下懒,在⼀台Linux虚拟机上搭建6个节点的Redis集群(实际真正⽣产环境,需要3台Linux服务器分布存放3个Master)1、安装GCC环境安装Redis需要依托GCC环境,先检查Linux是否已经安装了GCC,如果没有安装,则需要进⾏安装检查GCC是否安装,可以看看版本号$ gcc -v如果已经安装了GCC,则会显⽰以下信息如果没有任何信息,则我们可以通过命令yum install gcc-c++进⾏在线安装$ yum install gcc-c++如果没有⽹络的时候,我们就需要下载GCC的安装包进⾏⼿动安装了,具体⽅法还是⽐较复杂的,具体离线安装GCC的⽅法,请参考我的另外⼀篇⽂章《》2、安装Ruby和Rubygems如果有⽹的话,则通过yum命令进⾏安装,⾃动将关联的依赖包全部安装$ yum install ruby$ yum install rubygems如果是离线的状态,我们则可以选择下载Ruby和Rubygems,解压⼿动进⾏安装,具体的⽅法请参考我的另外两篇⽂件《》和《》,这⾥我们不做多讲解。
redis单机安装以及集群搭建(redis-6.2.6)
redis单机安装以及集群搭建(redis-6.2.6)之前写过⼀篇基于redis-3.2.4版本的安装⽇记,这篇是基于redis-6.2.6改动不少,故再次记录⼀下两台电脑10.2.5.147,10.2.5.148,都是centos7.5本次搭建4主4从集群1.单机安装1.1.下载安装包直接从redis官⽹下载安装包,官⽹地址:https://redis.io/download直接使⽤命令下载:wget http://download.redis.io/releases/redis-6.2.6.tar.gz1.2.安装编译将安装包直接上传到了/opt⽬录解压 tar -zxvf redis-6.2.6.tar.gz 之后,得到⼀个redis-6.2.6的⽂件夹个⼈⽐较喜欢将⽂件信息放在/usr/local/redis⽬录下,所以cp /opt/redis-6.2.6/* /usr/local/redis接下来就是编译了进⼊到/usr/local/redis⽬录,执⾏make命令make编译报错make[3]: 进⼊⽬录“/usr/local/redis/deps/hiredis”cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb alloc.cmake[3]: cc:命令未找到make[3]: *** [alloc.o] 错误 127make[3]: 离开⽬录“/usr/local/redis/deps/hiredis”make[2]: *** [hiredis] 错误 2make[2]: 离开⽬录“/usr/local/redis/deps”make[1]: [persist-settings] 错误 2 (忽略)CC adlist.o/bin/sh: cc: 未找到命令make[1]: *** [adlist.o] 错误 127make[1]: 离开⽬录“/usr/local/redis/src”安装更新gccyum isntall gcc-c++make编译报错致命错误:jemalloc/jemalloc.h:没有那个⽂件或⽬录分配器allocator,如果有MALLOC 这个环境变量,会有⽤这个环境变量的去建⽴Redis。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Redis集群配置1.集群节点配置
2.启动集群
2.1 节点启动
redis-server **/redis.conf(节点配置文件)
2.2 建立集群
建立集群需要使用redis源码中src/redis-trib.rb脚本,因此要先安装ruby运行环境。
利用脚本建立集群后,节点中会记录集群的信息,再次启动时不需要重新建立集群。
因此ruby的运行环境不需要安装到redis节点主机上。
2.3.1 使用脚本建立集群
redis-trib.rb create --replicas 1 192.168.31.245:7000 192.168.31.245:7001 192.168.31.245:7002 192.168.31.210:7003 192.168.31.210:7004 192.168.31.210:7005
--replicas 1 每个master的备份节点数
2.3.2 安装ruby运行环境
●安装rvm 参考https://rvm.io/
非root用户运行
◆gpg --keyserver hkp:// --recv-keys
409B6B1796C275462A1703113804BB82D39DC0E3
7D2BAF1CF37B13E2069D6956105BD0E739499BDB
◆\curl -sSL https://get.rvm.io | bash -s stable
●安装ruby
rvm install ruby-2.4
●安装ruby与redis的接口
gem install redis
3.Redis集群与单节点的不同
●不支持多数据库,不支持切换数据库的select命令
●集群节点使用redis端口号+10000的端口进行集群节点间的通信。