redis spring的使用
来源:互联网 发布:软件需求调研报告 编辑:程序博客网 时间:2024/05/18 00:46
spring的redis配置使用:
1.首先加上maven的包:
<!-- redis支持 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.1.0</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.1.0.RELEASE</version> </dependency><!-- redis支持 -->
2.redis.properties
# Redis settings #sentinel1 没用到的放心im.hs.server.redis.sentinel1.host=127.0.0.1im.hs.server.redis.sentinel1.port=26379#sentinel2 没用到的放心im.hs.server.redis.sentinel2.host=127.0.0.1im.hs.server.redis.sentinel2.port=36379 #server配置im.hs.server.redis.sentinel.masterName=mymasterim.hs.server.redis.sentinel.password=redispass#配置im.hs.server.redis.host=127.0.0.1im.hs.server.redis.pass=redispass im.hs.server.redis.port=6379im.hs.server.redis.default.db=0im.hs.server.redis.timeout=100000im.hs.server.redis.maxIdle=500 im.hs.server.redis.maxTotal=5000 im.hs.server.redis.maxWaitTime=1000 # false 的话有些source获取失败im.hs.server.redis.testOnBorrow=false im.hs.server.redis.minIdle=300
3.redis.xml spring配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 配置Jredis连接池 --> <bean id="jedisPool" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxActive" value="1000" /> <property name="maxIdle" value="50" /> <property name="maxWait" value="5000" /> <property name="testOnBorrow" value="false" /> </bean> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="${im.hs.server.redis.host}" /> <property name="port" value="${im.hs.server.redis.port}" /> <!-- <property name="password" value="${im.hs.server.redis.pass}" /> --> <property name="poolConfig" ref="jedisPool" /> </bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="jedisConnectionFactory"></property> </bean> <bean id="stringRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate"> <property name="connectionFactory" ref="jedisConnectionFactory"></property> </bean></beans>
4.RedisServiceImp.java
@Service("redisService")public class RedisServiceImpl implements RedisService { private Logger logger = LoggerFactory.getLogger(RedisServiceImpl.class); @Autowired private StringRedisTemplate strRedisTemplate; @Autowired RedisTemplate<?, ?> redisTemplate; // 线程池 private static final ThreadPoolExecutor executor = new ThreadPoolExecutor( 256, 256, 30L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new BasicThreadFactory.Builder().daemon(true).namingPattern("redis-oper-%d").build(), new ThreadPoolExecutor.CallerRunsPolicy()); /** * (非 Javadoc) * <p>Title: set</p> * <p>Description: </p> * @param key * @param value * @see com.souche.scashier.service.redis.RedisService#set(java.lang.String, java.lang.String) */ public void set(final String key, final String value) { redisTemplate.execute(new RedisCallback<Object>() { @Override public Object doInRedis(RedisConnection connection) throws DataAccessException { connection.set( redisTemplate.getStringSerializer().serialize(key), redisTemplate.getStringSerializer().serialize(value)); logger.debug("save key:" + key + ",value:" + value); return null; } }); } /** * (非 Javadoc) * <p>Title: get</p> * <p>Description: </p> * @param key * @return * @see com.souche.scashier.service.redis.RedisService#get(java.lang.String) */ public String get(final String key) { return redisTemplate.execute(new RedisCallback<String>() { @Override public String doInRedis(RedisConnection connection) throws DataAccessException { byte[] byteKye = redisTemplate.getStringSerializer().serialize( key); if (connection.exists(byteKye)) { byte[] byteValue = connection.get(byteKye); String value = redisTemplate.getStringSerializer() .deserialize(byteValue); logger.debug("get key:" + key + ",value:" + value); return value; } logger.error("valus does not exist!,key:"+key); return null; } }); } /** * (非 Javadoc) * <p>Title: delete</p> * <p>Description: </p> * @param key * @see com.souche.scashier.service.redis.RedisService#delete(java.lang.String) */ public void delete(final String key) { redisTemplate.execute(new RedisCallback<Object>() { public Object doInRedis(RedisConnection connection) { connection.del(redisTemplate.getStringSerializer().serialize( key)); return null; } }); } /** * 线程池并发操作redis * * @param keyvalue */ public void mulitThreadSaveAndFind(final String keyvalue) { executor.execute(new Runnable() { @Override public void run() { try { set(keyvalue, keyvalue); get(keyvalue); } catch (Throwable th) { // 防御性容错,避免高并发下的一些问题 logger.error("", th); } } }); } }
5.junti test
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = { "classpath*:beans/**/*.xml","classpath*:beans/*.xml","classpath:**/*.application*.xml" })public class RedisServiceTest { @Autowired private RedisService redisService; public static String key = "zhong"; public static String value; @Test public void test() { value = "nihao,zhuren"; redisService.set(key, value); value = redisService.get(value); System.out.println(value); }}
// 运行结果:输出nihao,zhuren
// 看看redis是否写入
至此大功完成。
感谢朋友的博客:http://m.oschina.net/blog/497163
1 0
- redis spring的使用
- Spring boot redis的使用
- Spring中spring-data-redis的使用
- Redis Scan的使用方式以及Spring redis的坑
- spring与redis整合,redisTemplate的使用
- 11. Spring Boot中Redis的使用
- redis与java spring的整合使用
- Spring-Data-Redis之RedisTemplate的使用
- Spring Data Redis(RedisTemplate的使用)
- Spring Data Redis(StringRedisTemplate的使用)
- Spring boot redis的使用(一)
- Spring boot redis的使用(二)
- spring boot session redis的使用
- Spring-data-redis的简单使用
- spring boot 中redis的使用
- 1、Spring Session-使用Redis的HttpSession
- Spring Boot中Redis的使用
- Spring Boot中Redis的使用
- iOS 容器视图控制器
- SVG 简介
- hdu2108 Shape of HDU (叉乘,判断是否为凸包)
- Android Studio学习笔记4常用弹出窗口和解决输出中文乱码的问题
- 深入分析:Android中app之间的交互(一,使用Action)
- redis spring的使用
- 1021. Deepest Root (25)
- Dynamic linking static library on iOS
- 如何判断一个企业网站的质量好坏
- android使用GreenDao操作数据库
- 删除字符串中重复元素
- 安装IntelliJ IDEA
- swift的计算属性和python的@property
- 程序员实践过的算法和数据结构学习过程