Springdata redis是否支持pop多个元素进行set操作?
Does Spring data redis support pop multiple elements for set operations?
如题,我发现jedis支持pop多个元素jedis commands source code
我查看了 spring-data-redis 项目的源代码,但找不到任何支持此方法的方法。
如何在 spring data redis 中弹出多个元素?
您可以使用 SetOperations#pop 弹出一个随机元素。只需定义一个 RedisTemplate
<bean id="jedisConnFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:use-pool="true"/>
<bean id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnFactory"/>
然后你可以将其注入 SetOperations
@Resource(name="redisTemplate")
private SetOperations<String, String> operation;
您可以在 Working with Objects through RedisTemplate
找到其他 RedisTemplate
个视图
你也可以使用JDK收集接口,见Support Classes
RedisSetCommands#spop(key, count)
及其在 SetOperations
中的对应项当前未在 Spring Data Redis 中实现。我已经打开 DATAREDIS-668 以添加对 count
选项的支持。
同时,您可以使用 RedisTemplate#execute
通过底层连接获取值,让模板负责资源处理。
redisTemplate.execute((RedisCallback<Set<String>>) conn -> {
Jedis jedis = (Jedis) conn.getNativeConnection(); // access native driver
return jedis.spop(key, count);
});
如题,我发现jedis支持pop多个元素jedis commands source code
我查看了 spring-data-redis 项目的源代码,但找不到任何支持此方法的方法。
如何在 spring data redis 中弹出多个元素?
您可以使用 SetOperations#pop 弹出一个随机元素。只需定义一个 RedisTemplate
<bean id="jedisConnFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:use-pool="true"/>
<bean id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnFactory"/>
然后你可以将其注入 SetOperations
@Resource(name="redisTemplate")
private SetOperations<String, String> operation;
您可以在 Working with Objects through RedisTemplate
找到其他RedisTemplate
个视图
你也可以使用JDK收集接口,见Support Classes
RedisSetCommands#spop(key, count)
及其在 SetOperations
中的对应项当前未在 Spring Data Redis 中实现。我已经打开 DATAREDIS-668 以添加对 count
选项的支持。
同时,您可以使用 RedisTemplate#execute
通过底层连接获取值,让模板负责资源处理。
redisTemplate.execute((RedisCallback<Set<String>>) conn -> {
Jedis jedis = (Jedis) conn.getNativeConnection(); // access native driver
return jedis.spop(key, count);
});