SpringMVC統合RedisTemplate

25745 ワード

Markdownエディタのブログへようこそ
redis.xml

    <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <constructor-arg>
            <bean class="org.springframework.data.redis.connection.RedisStandaloneConfiguration"
                  c:host-name="IP" c:port="6379"/>
        constructor-arg>
    bean>

    <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">        
        <property name="minIdle" value="5"/>        
        <property name="maxIdle" value="100"/>        
        <property name="maxTotal" value="300"/>        
        <property name="maxWaitMillis" value="3000"/>        
        <property name="testOnBorrow" value="true"/>
    bean>
    
<bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
    
    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory" ref="jedisConnectionFactory"/>
        <property name="keySerializer" ref="stringRedisSerializer"/>
        <property name="valueSerializer" ref="stringRedisSerializer"/>
        <property name="hashKeySerializer" ref="stringRedisSerializer"/>
        <property name="hashValueSerializer" ref="stringRedisSerializer"/>
    bean>

プログラム中
Redisクラスを使用してRedisTemplateを注入する必要がある
	@Autowired
    private RedisTemplate<String, String> redisCache;

1番目のstringはkeyタイプを表し、2番目のstringはvalueタイプを表し、redisはkey、value形式であるため、2番目のstringはobjectに変更し、需要に応じて注入することができる.
5種類のデータ構造操作
redisTemplate.opsForValue();//     
redisTemplate.opsForHash();//  hash
redisTemplate.opsForList();//  list
redisTemplate.opsForSet();//  set
redisTemplate.opsForZSet();//    set

アクション文字列
  :redisTemplate.opsForValue().set("name","tom");
  :redisTemplate.opsForValue().get("name")       tom

redisTemplate.opsForValue().set("name","tom",10, TimeUnit.SECONDS);
  :redisTemplate.opsForValue().get("name")      10   ,         ,       null

操作リスト
  :redisTemplate.opsForList().leftPush("list","java");
     redisTemplate.opsForList().leftPush("list","python");
     redisTemplate.opsForList().leftPush("list","c++");
  :                 
1
2
3

操作Hash
  :redisTemplate.opsForHash().put("redisHash","name","tom");
     redisTemplate.opsForHash().put("redisHash","age",26);
     redisTemplate.opsForHash().put("redisHash","class","6");
	 System.out.println(redisTemplate.opsForHash().entries("redisHash"));{age=26, class="6", name=tom}

操作セット
  :System.out.println(template.opsForSet().members("setTest"));
     System.out.println(template.opsForSet().members("setTest2"));
     System.out.println(template.opsForSet().intersect("setTest","setTest2"));[aaa, ccc]
	 [aaa]
	 [aaa]

操作Zet
  :System.out.println(template.opsForZSet().range("zset1",0,-1));
     System.out.println(template.opsForZSet().remove("zset1","zset-6"));
     System.out.println(template.opsForZSet().range("zset1",0,-1));[zset-1, zset-2, zset-3, zset-4, zset-5, zset-6]
	 [zset-1, zset-2, zset-3, zset-4, zset-5]