redis直接存取object

来源:互联网 发布:linux创建文件夹 命令 编辑:程序博客网 时间:2024/06/06 04:49

redis中key—value结构直接存取object,不做json转换,因为object会由jdk自动序列化。将object以序列化的方式存入key—value,其中的list结构在取出时能够还原。

public abstract class AbstractCacheValueDao<T> {@Resourceprivate RedisTemplate<String, T> cacheRedisTemplate;public void setCacheRedisTemplate(RedisTemplate<String, T> cacheRedisTemplate) {this.cacheRedisTemplate = cacheRedisTemplate;}private ValueOperations<String, T> createValueOperation() {return cacheRedisTemplate.opsForValue();}protected abstract String getKey(String key);public T get(String key) {return createValueOperation().get(getKey(key));}public void setRehinkByOffSetHour(String key, T value, long hour) {createValueOperation().set(getKey(key), value, hour, TimeUnit.HOURS);}}

<bean id="cacheRedisTemplate" class="org.springframework.data.redis.core.RedisTemplate"><property name="connectionFactory" ref="cacheConnFactory"></property><property name="keySerializer" ref="redisStringSerializer"></property><property name="hashKeySerializer" ref="redisStringSerializer"></property><property name="valueSerializer" ref="jdkSerializer"></property><property name="hashValueSerializer" ref="jdkSerializer"></property></bean><bean id="redisStringSerializer"class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean><bean id="jdkSerializer"class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"></bean>

一般来说,StringRedisSerializer是作为key的序列化,而 JdkSerializationRedisSerializer 是作为value(在spring-data-redis中来说一般就是pojo对象)的序列化方式。

0 0
原创粉丝点击