Spring整合redis学习,RedisTemplate中的方法

Spring整合redis

一,整合步骤
  1. 配置文件properties
    #ip地址
    redis.hostName=127.0.0.1
    #端口号
    redis.port=6379
    #如果有密码
    redis.password=
    #客户端超时时间单位是毫秒 默认是2000
    redis.timeout=2000

#最大空闲数
redis.maxIdle=10
#连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal
redis.maxActive=10
#控制一个pool可分配多少个jedis实例,用来替换上面的redis.maxActive,如果是jedis 2.4以后用该属性
redis.maxTotal=10
#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
redis.maxWaitMillis=1000
#连接的最小空闲时间 默认1800000毫秒(30分钟)
redis.minEvictableIdleTimeMillis=300000
#每次释放连接的最大数目,默认3
redis.numTestsPerEvictionRun=1024
#逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
redis.timeBetweenEvictionRunsMillis=30000
#是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
redis.testOnBorrow=false
#在空闲时检查有效性, 默认false
redis.testWhileIdle=false这里插入代码片`
2. 配置redis连接池,

 <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig" > 
        <!--最大空闲数--> 
        <property name="maxIdle" value="${redis.maxIdle}" /> 
        <!--连接池的最大数据库连接数  -->
        <property name="maxTotal" value="${redis.maxTotal}" />
        <!--最大建立连接等待时间--> 
        <property name="maxWaitMillis" value="${redis.maxWaitMillis}" /> 
        <!--逐出连接的最小空闲时间 默认1800000毫秒(30分钟)-->
        <property name="minEvictableIdleTimeMillis" value="${redis.minEvictableIdleTimeMillis}" />
        <!--每次逐出检查时 逐出的最大数目 如果为负数就是 : 1/abs(n), 默认3-->
        <property name="numTestsPerEvictionRun" value="${redis.numTestsPerEvictionRun}" />
        <!--逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1-->
        <property name="timeBetweenEvictionRunsMillis" value="${redis.timeBetweenEvictionRunsMillis}" />
        <!--是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个--> 
        <property name="testOnBorrow" value="${redis.testOnBorrow}" /> 
        <!--在空闲时检查有效性, 默认false  -->
        <property name="testWhileIdle" value="${redis.testWhileIdle}" /> 
    </bean >
     
  1. 将连接池注入redis连接工厂

    	<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
            p:connection-factory-ref="jedisConnectionFactory" > 
            <property name="keySerializer">
                <bean
                    class="org.springframework.data.redis.serializer.StringRedisSerializer" />
            </property>
            <property name="hashKeySerializer">
                <bean
                    class="org.springframework.data.redis.serializer.StringRedisSerializer" />
            </property>
            <property name="valueSerializer">
                <bean
                    class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />
            </property>
            <property name="hashValueSerializer">
                <bean
                    class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />
            </property>
        </bean > 
         
    
  2. 将连接工厂注入redis操作模板类,RedisTemplate

    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
            p:connection-factory-ref="jedisConnectionFactory" > 
            <property name="keySerializer">
                <bean
                    class="org.springframework.data.redis.serializer.StringRedisSerializer" />
            </property>
            <property name="hashKeySerializer">
                <bean
                    class="org.springframework.data.redis.serializer.StringRedisSerializer" />
            </property>
            <property name="valueSerializer">
                <bean
                    class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />
            </property>
            <property name="hashValueSerializer">
                <bean
                    class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />
            </property>
        </bean > 
         
    
  3. 自定义redis工具类,工具类中注入RedisTemplate实例

      <bean id="redisUtil" class="com.how2java.RedisUtil">
            <property name="redisTemplate" ref="redisTemplate" />
        </bean>
    

二、RedisTemplate方法

  1. 公共方法
    redisTemplate.expire(Key,time);//指定缓存失效时间
    redisTemplate.getExpire(key,TimeUnit.SECONDS);//获取过期时间
    redisTemplate.hasKey(key);//判断key是否存在
    redisTemplate.delete(key[0])//删除KEY缓存,值只有一对数值时
    redisTemplate.delete(CollectionUtil.arrayToList(key))//删除所有数值对
    
  2. String缓存的方法
    //String缓存类型为,key:"name",value:"username"
    redisTemplate.opsForValue().get(key);//获取key
    redisTemplate.opsForValue().set(key,value)//存入值
    redisTemplate.opsForValue().set(key,value,time,TimeUnit.SECONDS);//存入缓存并设置时间
    redisTemplate.opsForValue().increment(key,delta)//递增delta的值
    redisTemplate.opsForValue().increment(key,-delta)//递减delta的值
    
  3. Map缓存的方法
    //Map缓存类型,key:user,item{username:admin, password:admin}
    redisTemplate.opsForHash().get(key,item);//获取map
    redisTemplate.opsForHash().entries(key);//获取key的所有键值
    redisTemplate.opsForHash().putAll(key, map);//存入的Map包含多个键值对
    expire(key, time);//设置时间
    redisTemplate.opsForHash().put(key, item, value);// 向一张hash表中放入数据,如果不存在将创建
    redisTemplate.opsForHash().delete(key,item);//删除表中的值
    redisTemplate.opsForHash().hasKey(key, item);//判断是否有该项的值
    redisTemplate.opsForHash().increment(key, item, by);//某项自增by的值,自减为-by
    
  4. Set缓存的方法
    //set缓存类型,Key:user,value:"sss","aaa"//value可以有多个
    redisTemplate.opsForSet().isMember(key, value);//根据value查询是否存在数据
    Long count = redisTemplate.opsForSet().add(key, values);//将数据存入SET,count为成功的数据个数
    expire(key, time);//设置时间
    redisTemplate.opsForSet().size(key);//获取长度
    Long count = redisTemplate.opsForSet().remove(key, values);//移除value的值,count为成功移除的个数
    
  5. List缓存的方法
    //list为数组集合,有下标,可以使用List<泛型>来放入对象集合
    redisTemplate.opsForList().range(key, start, end);//根据起始下标获取list缓存的内容
    redisTemplate.opsForList().size(key);//获取list的长度
    redisTemplate.opsForList().index(key, index);//根据索引获取List中的值
    redisTemplate.opsForList().rightPush(key, value);//将list放入缓存
    expire(key, time);//时间设置
    redisTemplate.opsForList().rightPushAll(key, value);//放入多个值
    redisTemplate.opsForList().set(key, index, value);//根据索引修改对应的值
    Long remove = redisTemplate.opsForList().remove(key, count, value);//移除count数量的值,remove为移除的个数
    

参考地址 https://how2j.cn/k/redis/redis-sping-data-redis/1719.html#nowhere

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值