java - 将 ShardedJedis 与 RedisTemplate 一起使用

标签 java spring redis jedis

以下是从jedis github页面直接复制的Jedis文档:

List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
JedisShardInfo si = new JedisShardInfo("localhost", 6379);
si.setPassword("foobared");
shards.add(si);
si = new JedisShardInfo("localhost", 6380);
si.setPassword("foobared");
shards.add(si);

那么,ShardedJedis有两种使用方式。直接连接或使用 ShardedJedisPool。为了可靠运行,后者必须在多线程环境中使用。

2.a) 直接连接:

ShardedJedis jedis = new ShardedJedis(shards);
jedis.set("a", "foo");
jedis.disconnect;

2.b) 池化连接:

ShardedJedisPool pool = new ShardedJedisPool(new Config(), shards);
ShardedJedis jedis = pool.getResource();
jedis.set("a", "foo");
.... // do your work here
pool.returnResource(jedis);
.... // a few moments later
ShardedJedis jedis2 = pool.getResource();
jedis.set("z", "bar");
pool.returnResource(jedis);
pool.destroy();

上面的例子展示了如何使用ShardedJedis

在我当前的设置中,我使用的是 RedisTemplateJedisConnectionFactory

我的问题是

How do I use ShardedJedis with RedisTemplate?

最佳答案

我认为它不直接支持您的情况。 RedisTemplate 为 Redis 交互提供了高级抽象。 而 RedisConnection 提供了接受和返回二进制值(字节数组)的低级方法。

见:Working with Objects through RedisTemplate

关于java - 将 ShardedJedis 与 RedisTemplate 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29616706/

相关文章:

ruby - 删除 redis-rb 中的多个键

redis - StackExchange.Redis - LockTake/LockRelease 用法

lua - 返回平均值的 Redis 脚本

java - MP3:一种以毫秒为单位获取任何给定字节位置的位置的方法?

java - "java.lang.IllegalStateException: Activity has been destroyed"当按下 onBackPressed() 时

java - 在 Java 中创建和绘制巨大的(缓冲的)图像

java - Spring启动应用程序(eureka客户端)抛出ClassNotFoundException : javax. ws.rs.core.Response$StatusType

java - 当代码一步步执行时,流是如何工作的?

java - Spring Boot post HTTP 请求

java - 在 Spring 3.2.5 中使用 EclipseLink(Pet Clinic 项目)