2、Redis集群的调用
来源:互联网 发布:软件编程成果展板 编辑:程序博客网 时间:2024/06/09 21:46
前言:
在上篇文章中讲到了redis集群环境的搭建,本次将讲解下redis集群的调用,对大多程序员来讲大多数操作还是调用集群环境,对于环境的搭建,后期的维护是不太关心的,
不过手动构建测试环境还是很有必要的。
redis-cli 调用
通过redis-server 启动redis的服务,对应存在命令 redis-cli作为客户端去调用服务器。在redis单机情况下,我们都是这么调用redis服务的
./redis-cli -h 192.168.1.103 -p 7001
如果需要调用集群环境,需要增加 -c参数 ,即:
./redis-cli -c -h 192.168.1.103 -p 7001
mac:bin lkl$ ./redis-cli -c -h 192.168.1.103 -p 7001192.168.1.103:7001> set name liaokailin设置了一个简单的key-value
note: 本系列文章,只针对redis的集群,不阐述redis的基本操作,如有需要可自行搜索。
Enter后
mac:bin lkl$ ./redis-cli -c -h 192.168.1.103 -p 7001192.168.1.103:7001> set name liaokailinOK192.168.1.103:7001> get name"liaokailin"192.168.1.103:7001>
一切正常,那么连接 7004
mac:bin lkl$ ./redis-cli -c -h 192.168.1.103 -p 7004192.168.1.103:7004> set hello world-> Redirected to slot [866] located at 192.168.1.103:7000OK192.168.1.103:7000>
此时发现,连接到7004这个节点后,设置一个简单的key,操作跳转到7000这个节点,这是为什么呢???
7004做为slave节点存在,在redis cluster中,slave node是不支持写操作的,slave是为了保证高可用的。在对slave操作时会主动切换到master来操作的。
切换到7000后,由于7000和7001是在同一集群下,因此在7000下同样能获取到7001中设置的key
192.168.1.103:7000> get name-> Redirected to slot [5798] located at 192.168.1.103:7001"liaokailin"192.168.1.103:7001>
jedis 调用
jedis为redis的java调用客户端开发包,需要注意的是,jedis的低版本中是不能支持redis的集群调用的。
配置maven
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.2</version></dependency>
下面给出我写的一段小程序,easy
package com.lkl.redis;import java.util.HashSet;import java.util.Set;import redis.clients.jedis.HostAndPort;import redis.clients.jedis.JedisCluster;/** * test redis cluster * * @author lkl * @version $Id: App.java, v 0.1 2015年8月13日 下午11:24:16 lkl Exp $ */public class App { public static void main(String[] args) { String clusterConfig = "192.168.1.103:7000 192.168.1.103:7001 192.168.1.103:7002 192.168.1.103:7003 192.168.1.103:7004 192.168.1.103:7005"; Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>(); jedisClusterNodes.addAll(configRedisCluster(clusterConfig)); JedisCluster jc = new JedisCluster(jedisClusterNodes); jc.set("foo", "bar"); System.out.println(jc.get("foo")); } public static final String NODE_DELIMITER = "; ,"; public static Set<HostAndPort> configRedisCluster(String clusterNodes) { Set<HostAndPort> nodeSet = new HashSet<HostAndPort>(); char[] cc = NODE_DELIMITER.toCharArray(); for (int i = 0; i < cc.length; i++) { if (clusterNodes.indexOf(cc[i]) != -1) { String[] nodes = clusterNodes.split(cc[i] + ""); if (nodes != null && nodes.length > 0) { for (int j = 0; j < nodes.length; j++) { nodeSet.add(new HostAndPort(nodes[j].split(":")[0], Integer.valueOf(nodes[j].split(":")[1]))); } break; } } else { continue; } } return nodeSet; }}
redis-desk-manager
redis-desk-manager为redis的可视化工具,一般我都不使用,有兴趣的同学可自行研究下。
1 0
- 2、Redis集群的调用
- Redis学习笔记2-Redis的集群
- redis cluster集群的源码分析(2)
- Redis集群的配置
- 理想的redis集群
- 理想化的Redis 集群
- 理想化的 Redis 集群
- 理想的redis集群
- redis集群的配置
- 理想化的 Redis 集群
- 理想化的 Redis 集群
- 理想化的Redis 集群
- Redis集群的搭建
- redis集群的介绍
- Redis的集群搭建
- Redis集群的操作
- redis集群的搭建
- Redis集群的使用
- 设计模式-创建型之建造者模式
- 算法题: 锤子剪刀布
- 黑马程序员———API之StringBuffer、Integer和Character
- 十个让你成为优秀程序员的有效方法
- Unity Mesh
- 2、Redis集群的调用
- I-539 表格
- 如何用OpenCV自带的adaboost程序训练并检测目标
- SublimeText2 快捷键一览表
- 读《javascript权威指南> 》第五版 第八章 函数
- Android中Activity, View,Window,DecorView之间的关系
- FrameSize、WinSize、VisibleSize、VisibleOrigin概念理解
- linux设备模型(四 platform )
- 使用行列式公式求多边形面积