Redis+linux的集群(五)
来源:互联网 发布:淘宝客服聊天技巧精选 编辑:程序博客网 时间:2024/06/10 12:42
一,什么是redis集群:
1,Redis集群是一个实现分布式并且允许单点故障的Redis高级版本。
2,Redis集群没有最重要或者说中心节点,这个版本最主要的一个目标是
设计一个线性可伸缩(可随意增删节点?)的功能。
3,Redis集群为了数据的一致性可能牺牲部分允许单点故障的功能,
所以当网络故障和节点发生故障时这个系统会尽力去保证数据的一致性和有效性。
(这里我们认为节点故障是网络故障的一种特殊情况)
为了解决单点故障的问题,我们同时需要masters 和 slaves。
即使主节点(master)和从节点(slave)在功能上是一致的,
甚至说他们部署在同一台服务器上,从节点也仅用以替代故障的主节点。
实际上应该说 如果对从节点没有read-after-write(写并立即读取数据
以免在数据同步过程中无法获取数据)的需求,那么从节点仅接受只读操作。
二,简单模拟集群
1,改进redisproperties,在其中加入另外一台配有redis服务的机器即可。
注意:这里这两个redis其他都相同只是ip不同。
redis.pool.maxActive=1024
redis.pool.maxIdle=200
redis.pool.maxWait=1000
redis.pool.testOnBorrow=true
redis.pool.testOnReturn=true
redis.ip=192.168.14.215
redis.port=6379
redis.ip2=192.168.14.137
2,使用ShardedJedisPool来创建池,在这之前用JedisShardInfo读取redis的配置,并存到一个List中。 后面跟使用池的方法一样。 具体代码: import java.util.LinkedList; import java.util.List; import java.util.ResourceBundle; import redis.clients.jedis.JedisPoolConfig; import redis.clients.jedis.JedisShardInfo; import redis.clients.jedis.ShardedJedis; import redis.clients.jedis.ShardedJedisPool; public class Test1 { private static ShardedJedisPool pool; static { ResourceBundle bundle = ResourceBundle.getBundle("redis2"); if (bundle == null) { throw new IllegalArgumentException("[redis.properties] is not found!"); } JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(Integer.valueOf(bundle.getString("redis.pool.maxActive"))); config.setMaxIdle(Integer.valueOf(bundle.getString("redis.pool.maxIdle"))); config.setMaxWaitMillis(Long.valueOf(bundle.getString("redis.pool.maxWait"))); config.setTestOnBorrow(Boolean.valueOf(bundle.getString("redis.pool.testOnBorrow"))); config.setTestOnReturn(Boolean.valueOf(bundle.getString("redis.pool.testOnReturn"))); JedisShardInfo jedisShardInfo1 = new JedisShardInfo(bundle.getString("redis.ip"),Integer.valueOf(bundle.getString("redis.port"))); JedisShardInfo jedisShardInfo2 = new JedisShardInfo(bundle.getString("redis.ip2"),Integer.valueOf(bundle.getString("redis.port"))); List<JedisShardInfo> list = new LinkedList<JedisShardInfo>(); list.add(jedisShardInfo1); list.add(jedisShardInfo2); pool = new ShardedJedisPool(config, list); //pool = new JedisPool(config, bundle.getString("redis.ip"), Integer.valueOf(bundle.getString("redis.port"))); } public static void main(String[] args) { // Jedis jedis=new Jedis("192.168.15.215"); //Jedis jedis = pool.getResource(); // 从池中获取一个Jedis对象 ShardedJedis jedis = pool.getResource(); String keys = "name"; jedis.del(keys); jedis.set(keys, "yjl"); String value = jedis.get(keys); System.out.println(value); pool.returnBrokenResource(jedis);//释放连接池 } }
- Redis+linux的集群(五)
- redis集群中(五)
- 基于Linux的集群系统(五)
- Redis学习笔记(五)Linux下redis的安装
- Redis学习笔记(五) 基于Redis 3.0的集群
- linux下的redis+spring集群整合(七)
- redis集群的搭建(伪集群)
- redis集群实现(五) sentinel的架构与raft协议
- redis集群实现(五) sentinel的架构与raft协议
- Linux系统下,redis集群的搭建
- Redis 集群的安装(Redis+CentOS)
- redis学习笔记五(单机多节点集群)
- linux上redis集群的安装以及redis.conf配置(去注释版)
- Linux(CentOS 6.5) 安装redis集群
- 【Linux】redis集群
- Redis linux集群部署
- linux搭建redis集群
- Linux Redis集群安装
- iOS限定UITextField的输入格式
- Jedis连接池的使用
- 排序算法之堆排序
- Oracle-07-数据类型例子&查询当前系统时间&创建表语法
- 黑客与画家的影子
- Redis+linux的集群(五)
- leetcode 5. Longest Palindromic Substring 最长回文串
- hdu 4405 Aeroplane chess 概率dp入门题
- SSL 1565 将功补过 树形dp
- 九种求和方法
- 从深度图里面导出边界
- 【codevs2492】【Tyvj1941】上帝造题的七分钟2,线段树的特别技巧
- lightoj 1018 - Brush (IV) 【状压dp】
- 数学常数e的含义