jredis cluster客户端使用
一.序言
前面搭建了个3个msater-slave 的本地集群测试,这里用java 的客户端 进行一些简单测试,看看集群是否生效。
redis client 推荐:http://redis.io/clients
我使用的:https://github.com/xetorthio/jedis
二.测试
maven:
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.7.2</version><type>jar</type><scope>compile</scope>
</dependency>
@org.junit.Testpublic void cluster(){String key = "2";// 这东西 可以直接看到key 的分片数,就能知道放哪个 节点System.out.println(JedisClusterCRC16.getSlot(key));Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7000));jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7001));jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7002));// 3个master 节点JedisCluster jc = new JedisCluster(jedisClusterNodes);System.out.println(jc.get(key));jc.setnx(key, "bar");String value = jc.get(key);System.out.println(value);}
别人的例子,我测试:
Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7000));jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7001));jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7002));JedisCluster jc = new JedisCluster(jedisClusterNodes);for (int i = 1; i <= 10000; i++) {long start = System.currentTimeMillis();jc.set("k:" + i, "v" + i);System.out.print("set " + i +"th value in " + (System.currentTimeMillis() - start) + " ms");start = System.currentTimeMillis();jc.get("k:" + i);System.out.println(", get " + i +"th value in " + (System.currentTimeMillis() - start) + " ms");}
由于是本机 固态硬盘,速度 杠杆的。
三.测试反馈:
1.集群正常,基本操作都OK
2.如果某个master 挂了,比如7001, 集群依然可用,会存放到对应的salve 7004 上去。
3.如果master -slave 都挂了,会导致 整个集群不可用,异常,因此最好配有M-S 的结构
4.我默认配置,有rdb 和 aof 持久化,因此master 挂了,重启,数据可以从salve 上恢复
5.存放的key 会根据返回的位置,放在不同的slot 上,实现均衡
小结:
1.这里仅仅是最基本的配置,和简单测试
2.如果配置文件以及更多命令得参考文档
2.1 客户端命令:http://redis.io/topics/clients
2.2 中文jredis API:http://www.360doc.com/content/15/0328/12/5054188_458684113.shtml 建议看源码用例
2.3 redis.conf 中文(旧):http://www.cppblog.com/HappySky2046/archive/2014/06/18/207323.html
3.如果前期负载不很大,可以开启持久化,毕竟集群 还不熟悉,如果负载高了,而且集群比较熟悉了,业务也不依赖的情况下,可以关闭,或者 适当调整,调整多看看 原理 和 配置文件说明 就行了。
jredis cluster客户端使用相关推荐
- Jedis cluster客户端使用
前言: 由于spring-data-redis不支持,redis集群的操作.所以更换客户端,使用Jedis cluster. 正文: 一.序言 前面搭建了个3个msater-slave 的本地集群测试 ...
- Redis核心技术-高可靠-集群方案(客户端分片、代理分片、Redis Cluster)
Redis在3.0版本前只支持单实例模式,虽然Redis的开发者Antirez早在博客上就提出在Redis 3.0版本中加入集群的功能,但3.0版本等到2015年才发布正式版. 各大企业等不急了,在3 ...
- Redis 客户端:Jredis 和 spring-data-redis 整合
因为我使用的是 java ,所以我学习的是java 的客户端 :Jredis .整合结合自己的项目,把 Jredis 的客户端整合一下. 我们整合需要的工具: Redis Service redis. ...
- MySQL Cluster(MySQL 集群) 初试(转)
作/译者:叶金荣(imysql#imysql.com>),来源:http://imysql.com,欢迎转载. 作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请 ...
- MySQL Cluster(MySQL 集群) 初试
MySQL Cluster 是MySQL适合于分布式计算环境的高实用.高冗余版本.它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器.在MyQL 5.0及 ...
- MySQL Cluster集群配置方案
在为某证券公司设计其OA架构时,初期客户是30万用户在线:然而在项目实施中,客户又提出50万用户同时在线的需求,而且都有写的需求:这样初始的设计 master-master-slave,读写分离满足不 ...
- springboot redis cluster集群 Cannot determine a partition for slot xxx.
io.lettuce.core.cluster.PartitionSelectorException: Cannot determine a partition for slot xxxx. 检查re ...
- Redis Cluster设计规范
文章目录 一. 问题背景 二. 前言 三. Redis Cluster设计规范 3.1 Redis Cluster的目标 3.2 子集 3.3 Redis Cluster协议中的客户端和服务器角色 3 ...
- MySQL增量订阅消费组件Canal POC
POC的目的: 1.与MYSQL的对接方式,配置文档 2.订阅的延迟 3.订阅后宕机消息会不会丢失 4.能不能从指定的点开始重新订阅 5.高并发写入的时候,日志的顺序是否还能保持,不考虑消费的情况订阅 ...
最新文章
- 云原生系列「五」我为啥又看上了serviceMesh?
- html5 app开发重大消息-腾讯在技术端推进Html5生态发展
- android connect 闪退,Connect闪退
- 大规模中文自然语言处理语料(百科,问答、新闻,翻译)
- 力扣题目——429. N 叉树的层序遍历
- 如何开发和维能hold住全场的软件
- SciTE AMPL配置问题
- 什么是区块链BaaS平台?
- python3中26个英文字母排序_26个英文字母按排列顺序
- 干法读后感--磨练灵魂 提升心志
- visual studio code Python终端运行_深入比较kaldi和python_speech_features提取的fbank特征之间的区别...
- 史上最简单的Git入门教程
- java 对接中国银联 云闪付
- “笨办法”学Python3——练习5 更多变量和打印
- linux的系统监视器图片_用Nvidia Jetson Nano 2GB和Python构建一个价值60美元的人脸识别系统...
- 电脑桌面一计算机打不开怎么办,电脑桌面什么都打不开怎么办
- 为什么和平精英一直显示无法连接到服务器,和平精英无法连接到服务器解决办法...
- 【PPT】PPT文档导出PDF文件时,去掉右上角时间
- 【电脑小技巧每日一讲:SQL server 2016日志文件的清理】
- IntelliJ IDEA初次创建简单的java项目--初学者使用详解