Redis中的客户端Sharding
生活随笔
收集整理的這篇文章主要介紹了
Redis中的客户端Sharding
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Jedis 客戶端提供了Redis Sharding 的方案,并且支持連接池。
ShardedJedis
public class ShardingTest {public static void main(String[] args) {JedisPoolConfig poolConfig = new JedisPoolConfig();// Redis服務器JedisShardInfo shardInfo1 = new JedisShardInfo("127.0.0.1", 6379);JedisShardInfo shardInfo2 = new JedisShardInfo("192.168.8.205", 6379);// 連接池List<JedisShardInfo> infoList = Arrays.asList(shardInfo1, shardInfo2);ShardedJedisPool jedisPool = new ShardedJedisPool(poolConfig, infoList);ShardedJedis jedis = null;try{jedis = jedisPool.getResource();for(int i=0; i<100; i++){jedis.set("k"+i, ""+i);}for(int i=0; i<100; i++){Client client = jedis.getShard("k"+i).getClient();System.out.println("取到值:"+jedis.get("k"+i)+","+"當前key位于:" + client.getHost() + ":" + client.getPort());}}finally{if(jedis!=null) {jedis.close();}}} }Sharded 分片的原理?怎么連接到某一個Redis 服務?
使用ShardedJedis 之類的客戶端分片代碼的優勢是配置簡單,不依賴于其他中間件,分區的邏輯可以自定義,比較靈活。但是基于客戶端的方案,不能實現動態的服務增減,每個客戶端需要自行維護分片策略,存在重復代碼。
第二種思路就是把分片的代碼抽取出來,做成一個公共服務,所有的客戶端都連接到這個代理層。由代理層來實現請求和轉發。
?
總結
以上是生活随笔為你收集整理的Redis中的客户端Sharding的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis 分布式方案
- 下一篇: Redis中的代理Sharding