redis 实战
redis实战系列教程
我是李超人
这个作者很懒,什么都没留下…
展开
-
redis实战第十五篇 redis cluster的批处理中ask重定向解决方案
ask重定向现象请参考【传送门】分别使用mget和pipline做批处理1.使用mget批量获取,如果存在重定向问题,会抛出异常。 @Test public void testMget(){ JedisCluster jedis = RedisClusterUtil.getJedis(); List<String> results =...原创 2019-02-18 10:34:10 · 1154 阅读 · 0 评论 -
redis实战第十四篇 redis cluster ask重定向
redis cluster除了有一个moved重定向,还存在ask重定向。ask重定向代表的状态比较特别,它是当slot处于迁移状态时才会发生。例如:一个slot存在三个key,分别为hello1、hello2、hello3,假设此时slot正在处于迁移状态,hello1已经迁移到了目标节点,此时如果在源节点获取hello1,则会报出ask重定向错误。下面通过手动迁移slot来模拟ask重定向问...原创 2019-02-18 10:29:50 · 4012 阅读 · 1 评论 -
redis实战 migrate异常NOAUTH Authentication required.
当redis cluster集群设置密码的时候,使用migirate需要加上密码,否则会报如下异常:(error) ERR Target instance replied with error: NOAUTH Authentication required.redis在3.0之前是不支持migrate带有password的,在3.0之后可以在migrate中加入auth参数来做权限校验12...原创 2019-02-18 00:10:24 · 3638 阅读 · 0 评论 -
redis实战第十三篇 jedis连接redis cluster
redis cluster客户端有两种;Dummy:又称为傀儡客户端,redis的重定向机制会返回当前键所在的槽和对应的节点,dummy客户端根据这一机制随机连接任一redis获取键所在的节点,这种客户端实现代码简单,每次只需要根据重定向的信息再次发送请求即可,但是这样弊端也和明显,根据重定向再次发送请求额外增加了开销。smart:它会在内部维护一个slot→node的映射关系,本地就可以实现...原创 2019-02-16 20:35:39 · 7455 阅读 · 0 评论 -
redis实战第十二篇 redis cluster请求重定向
在集群模式下,redis在接收到键任何命令时会先计算该键所在的槽,如果改键所在的槽位于当前节点,则直接执行命令,如果改键位于其它节点,则不执行该命令,返回重定向信息。比如hello这个键槽866上,而曹866位于31节点上,假设在32上执行get hello ,则会返回重定向信息。127.0.0.1:6380&gt; get hello(error) MOVED 866 192.168.0....原创 2019-02-16 11:15:10 · 5112 阅读 · 2 评论 -
redis实战第十一篇 redis cluster添加密码
redis cluster设置密码有两种方式1.在集群创建时,配置文件中添加如下两行masterauth passwdrequirepass passwd 2.如果集群已经创建好,也可以动态设置密码在集群的所有实例(包含主节点和从节点)中执行config set masterauth passwd config set requirepass passwd config rewr...原创 2019-02-16 09:56:34 · 6458 阅读 · 1 评论 -
redis实战第十篇 集群收缩
集群收缩的过程和集群扩容的过程正好是反过来的将207和207的从节点208从集群下线1.迁移207上的4096个槽使用redis-cli迁移槽,先将1365个槽迁移到31上# redis-cli --cluster reshard 192.168.0.207:6380...How many slots do you want to move (from 1 to 16384)? 136...原创 2019-02-15 20:46:57 · 419 阅读 · 0 评论 -
redis实战第九篇 集群扩容自动迁移槽(redis-cli)
上文讲解过自动迁移槽实现集群扩容(传送门)1.准备新节点安装redis,参考传送门节点配置,参考传送门2.将节点加入集群redis-cli --cluster add-node {new host}:{new port} {exist host}:{exist port} 加入集群redis-cli --cluster add-node 192.168.0.207:6380 192....原创 2019-02-15 20:41:21 · 6064 阅读 · 0 评论 -
redis实战第八篇 集群扩容 手动迁移槽
随着业务需求的增加,需要对集群扩容,将207,208两个节点加入到集群中1.准备新节点安装redis,参考redis安装(传送门)节点配置,参考(传送门)2.将节点加入集群1)通过cluster meet 加入集群127.0.0.1:6380&amp;gt; cluster meet 192.168.0.207 6380OK127.0.0.1:6380&amp;gt; cluster meet 1...原创 2019-02-15 20:25:25 · 2683 阅读 · 2 评论 -
redis实战第七篇 使用redis工具(redis-cli)搭建redis cluster
上一篇有介绍手动安装redis cluster传送门,很明显,手动创建redis cluster的过程比较繁杂,容易出错,因此redis官方开发了一个工具,可以快速搭建redis cluster。在5.0之前该工具是由ruby语言编写的redis-trib.rb,在使用前需要安装ruby语言环境。在5.0之后redis摒弃了该工具,将搭建集群的功能合并到了redis-cli上,进一步简化了搭建re...原创 2019-02-14 16:25:15 · 8583 阅读 · 0 评论 -
redis实战第六篇 手动创建redis cluster
文章目录@[toc]redis集群介绍手动创建redis cluster1.在六台机器上安装redis2.集群配置3.启动所有节点4.节点握手5.分配槽6.分配从节点7.测试redis集群介绍分布式数据库需要解决数据分区问题,redis cluster采用虚拟槽分区来对数据进行划分。redis cluster的虚拟槽固定为16384个,编号为0~16383。槽(slot)是集群管理和迁移的基本...原创 2019-02-14 11:05:59 · 1508 阅读 · 0 评论 -
redis实战第五篇 jedis 连接 redis sentinel详解
jedis针对redis sentinel给出了一个JedisSentinelPool,jedis给出了很多的构造方法,其中比较全的是下面这个,注意,这个连接池争对的连接还是主节点:public JedisSentinelPool(String masterName, Set&amp;lt;String&amp;gt; sentinels,final GenericObjectPoolConfig poolCo...原创 2019-02-13 16:43:44 · 11056 阅读 · 2 评论 -
redis实战第四篇 手动容灾故障转移记录
手动容灾执行报异常127.0.0.1:26379> sentinel failover mymaster(error) NOGOODSLAVE No suitable slave to promote日志如下23202:X 28 Jan 2019 20:29:18.233 # +new-epoch 123202:X 28 Jan 2019 20:29:18.234 # +vote...原创 2019-02-02 13:59:06 · 1299 阅读 · 0 评论 -
redis实战第三篇 redis sentinel安装和部署
三个sentinel节点,一个redis主节点,两个redis从节点redis版本:redis-5.0.3机器IP192.168.0.31、192.168.0.32、192.168.0.331.下载并安装redis在三台机器上执行如下命令,安装redis安装gccyum install gcc$ wget http://download.redis.io/releases/red...原创 2019-01-28 21:16:36 · 2075 阅读 · 0 评论 -
redis实战第二篇 哨兵 redis sentinel
原文摘录自《redis开发与运维》redis sentinel解决主从复制高可用问题非高可用状态下故障处理一个主节点、两个从节点1)主节点发生故障,客户端连接主节点失败,两个从节点和主节点连接终端复制失败2)选择一个从节点更新为主节点3)更新应用方的配置信息,更新主节点信息,重新启动4)待原来的主节点恢复后,将其加入从节点同步新的主节点从以上流程可以看到,在非高可用的状态下,red...转载 2019-01-28 20:24:44 · 516 阅读 · 0 评论 -
redis实战第一篇 安装和使用
安装redis安装环境yum install gcc下载并安装redis$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz$ tar xzf redis-5.0.3.tar.gz$ cd redis-5.0.3$ make MALLOC=libc将src目录下的文件加到/usr/local/bin目录[roo...原创 2019-01-28 14:28:52 · 686 阅读 · 0 评论