通过spring自带的类 StringRedisTemplate进行字符串的操作。
opsForValue()方法返回一个ValueOperations接口的实例(其实是DefaultValueOperations类对象),然后使用对应的API进行操作:
- 获取key对应的value,get(Object key)
- 获取key对应的value并重新赋值,getAndSet(K key,V newValue)
- 一系列自增方法,increment()
- 批量获取,multiGet( Collection< K> keys),返回一个list< V>
- 批量设置值,multiSet( Map<? extends K,? extends V> m)
- 设置单个K-V, set( K key, V value)、set( K key, V value, final long timeout, final TimeUnit unit)。第二个是设置过期时间的方法
关于Redis的数据淘汰策略
- volatile-lru(least recently used):从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
- volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
- volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
- allkeys-lru(least recently used):当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的 key(这个是最常用的)
- allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
- no-eviction:禁止驱逐数据,也就是说当内存不足以容纳新写入数据时,新写入操作会报错。这个应该没人使用吧!