使用redis的正確姿勢(附代碼)

redis常被用作緩存熱數據,計數器,還有分佈式鎖,分佈式限流等等。總之它的應用場景越來越多。

使用redis的正確姿勢(附代碼)

redis的常用寫法主要分兩類,一類是利用原生的jedis,還有一類就是spring-data-redis封裝的RedisTemplate,使用門檻較低。

下面介紹一下常用的三種姿勢

姿勢1: Redis單節點 + Jedis單例

1:jedis:new Jedis("127.0.0.1", 6379).get("cache_key");

Redis單節點壓力過重, Jedis單例存在併發瓶頸,也沒有連接池 ,不可用於線上。

姿勢2: Redis單節點 + JedisPool單節點連接池

1:jedis:new JedisPool(new JedisPoolConfig(), "127.0.0.1", 6379, 10000).getResource().get("cache_key");

2:redisTemplate:配置文件配置

           

Redis單節點壓力過重,負載和容災比較差,適合壓力小的內部系統。

姿勢3: Redis集群(通過client端集群,一致性哈希方式實現) + Jedis多節點連接池

1:jedis:new ShardedJedisPool(new JedisPoolConfig(), new LinkedList());

2:redisTemplate:JedisConnectionFactory(RedisClusterConfiguration clusterConfig, JedisPoolConfig poolConfig)

Redis集群,負載和容災較好, ShardedJedisPool一致性哈希分片,讀寫均勻,動態擴充

下面是方式3中原生jedis的一個工具類的實現代碼:(redisTemplate的集群實現相對簡單,就不再描述了)

使用redis的正確姿勢(附代碼)

使用redis的正確姿勢(附代碼)

使用redis的正確姿勢(附代碼)

使用redis的正確姿勢(附代碼)

使用redis的正確姿勢(附代碼)

使用redis的正確姿勢(附代碼)

使用redis的正確姿勢(附代碼)


分享到:


相關文章: