spring 、Redis缓存配置
2016-01-21 00:00
567 查看
摘要: spring 、Redis缓存配置
在spring配置文件中加入如下配置:
java代码中的使用:
在spring配置文件中加入如下配置:
<!-- redis --> <bean id="redisDataSource" class="redis.clients.jedis.JedisPoolConfig" p:maxIdle="300" p:maxWaitMillis="1000" p:testOnBorrow="true" p:maxTotal="600"> </bean> <bean id="redisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:host-name="${redis.host}" p:port="${redis.port}" p:password="${redis.pwd}" p:pool-config-ref="redisDataSource" /> <bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer" /> <bean id="jdkSerializationRedisSerializer" class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" /> <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate" p:keySerializer-ref="stringRedisSerializer" p:valueSerializer-ref="jdkSerializationRedisSerializer" p:connectionFactory-ref="redisConnectionFactory" />
java代码中的使用:
import org.springframework.data.redis.core.RedisTemplate; public class RedisService { @Resource(name = "redisTemplate") private RedisTemplate<String, Object> redisTemplate; /** * 保存数据 * * @param key * @param obj * @return false :失败,true:成功 */ public boolean insertObject(final String key, final Object obj) { return redisTemplate.execute(new RedisCallback<Boolean>() { @Override public Boolean doInRedis(RedisConnection connection) throws DataAccessException { RedisSerializer<String> serializer = getRedisSerializer(); byte[] keys = serializer.serialize(key); if (null != connection.get(keys)) { return false; } byte[] values = serializer.serialize(toJson(obj)); return connection.setNX(keys, values); } }); } /** * 修改数据 * * @param key * @param obj * @return false :失败,true:成功 */ public boolean updateObject(final String key, final Object obj) { return redisTemplate.execute(new RedisCallback<Boolean>() { @Override public Boolean doInRedis(RedisConnection connection) throws DataAccessException { RedisSerializer<String> serializer = getRedisSerializer(); byte[] keys = serializer.serialize(key); if (null != connection.get(keys)) { if (1 == connection.del(keys)) { byte[] values = serializer.serialize(toJson(obj)); return connection.setNX(keys, values); } return false; } return false; } }); } /** * 删除数据 * * @param key * @return false :失败,true:成功 */ public boolean deleteObject(final String key) { return redisTemplate.execute(new RedisCallback<Boolean>() { @Override public Boolean doInRedis(RedisConnection connection) throws DataAccessException { RedisSerializer<String> serializer = getRedisSerializer(); byte[] keys = serializer.serialize(key); if (1 == connection.del(keys)) { return true; } return false; } }); } /** * 按Key查询 * @param key * @return */ private String queryDataFromRedis(final String key) { return redisTemplate.execute(new RedisCallback<String>() { public String doInRedis(RedisConnection connection) throws DataAccessException { RedisSerializer<String> serializer = getRedisSerializer(); byte[] keys = serializer.serialize(key); byte[] values = connection.get(keys); if (values == null) { return null; } return serializer.deserialize(values); } }); } private RedisSerializer<String> getRedisSerializer() { return redisTemplate.getStringSerializer(); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- redis安装问题小结
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序