码迷,mamicode.com
首页 > 其他好文 > 详细

Redis分片

时间:2019-10-13 23:31:42      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:test   list   使用   哨兵   void   nbsp   tsv   数据   code   

1. 分片作用

说明:一般的业务系统中会将一些重要数据保存到内存中,如果内存占用很大时只使用一台redis则效率低,所以搭建redis分片实现内存的扩容。

2. 准备3台redis

  1. 创建shards目录

    mkdir shards

    2.复制3份配置文件

    cp redis.conf shards/6379.conf

    cp redis.conf shards/6380.conf

    cp redis.conf shards/6381.conf

    3.修改配置文件   分别修改端口号(redis.conf文件)

    技术图片

         4.启动3台redis

    src/redis-server shards/6379.conf

    src/redis-server shards/6380.conf

    src/redis-server shards/6381.conf

    5.检查服务启动是否正确:ps -ef|grep redis

    技术图片

 

3. 测试分片

  redis分区有两种方式,对既定的key有不同的方式来选择这个key存放到哪个实例中,也就是说有不同的系统来映射某个key到某个Redis的服务。

  • 最简单的分区方式为范围分区,就是映射一定范围的对象到特定的Redis实例。比如,ID从0到10000的用户会保存到实例R0,ID从10001到 20000的用户会保存到R1,以此类推。
  • 另外一种方式是hash一致算法实现分区,对key值进行hash一致性计算后得到结果,最终将数据保存到某一台redis实例中。

   @Test

   public void testShards() {

      List<JedisShardInfo> list = new ArrayList<JedisShardInfo>();

      list.add(new JedisShardInfo("192.168.2.102",6379));

      list.add(new JedisShardInfo("192.168.2.102",6380));

      list.add(new JedisShardInfo("192.168.2.102",6381));

      ShardedJedis jedis = new ShardedJedis(list);

      jedis.set("tsvv,"redis分片测试");

      System.out.println(jedis.get("tsvv"));

   }

   分片是多台redis共同作用的,如果其中一台出现了宕机现象,则整个分片都将不能使用,虽然是在一定程度上缓减了内存的压力,但是没有实现高可用。可以采用哨兵机制实现主从复制从而实现高可用。

 

Redis分片

标签:test   list   使用   哨兵   void   nbsp   tsv   数据   code   

原文地址:https://www.cnblogs.com/tsvv-plus/p/11668936.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!