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的集群實現相對簡單,就不再描述了)
閱讀更多 程序員的日常那些事 的文章