Spring数据redis是否支持弹出多个元素进行集合操作?

时间:2017-07-22 07:46:48

标签: spring spring-data-redis

作为标题,我发现jedis支持弹出多个元素jedis commands source code

我查看了spring-data-redis项目的源代码,但是找不到任何方法支持这个。

我怎样才能在spring数据redis中弹出多个元素?

2 个答案:

答案 0 :(得分:0)

您可以使用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

答案 1 :(得分:0)

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);
});