您的位置:首页 > 数据库 > Redis

spring整合redis简单demo

2016-05-21 22:54 513 查看
这里利用spring-data-redis整合redis

1.首先是项目结构



2.配置所需依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>

<groupId>com.example</groupId>
<artifactId>redis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>redis</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.7.1.RELEASE</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.0</version>
</dependency>
</dependencies>
</project>


3.配置redis链接

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd ">

<context:component-scan base-package="com.example.redis.dao" />
<context:property-placeholder location="classpath:application.properties" />

<!-- 连接池配置 -->
<bean id="jpoolConfig" class="redis.clients.jedis.JedisPoolConfig"
p:maxIdle="${redis.maxIdle}" p:maxWaitMillis="${redis.maxWait}"
p:testOnBorrow="${redis.testOnBorrow}" />

<!--链接配置 -->
<bean id="jconnectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:hostName="${redis.host}" p:port="${redis.port}" p:poolConfig-ref="jpoolConfig" p:password="${redis.pass}"/>

<!-- Redis模版类,用于操作redis -->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
p:connectionFactory-ref="jconnectionFactory">
</bean>

</beans>


5.我的配置文件application.properties

#链接配置
redis.host=192.168.0.104
redis.port=6379
redis.pass=123

#连接池配置
redis.maxIdle=300
redis.maxWait=1000
redis.testOnBorrow=true


6.写dao类型,使用redisTemplate模版类

@Repository
public class UserDao {

@Autowired
protected RedisTemplate<Serializable, Serializable> redisTemplate;

public void saveUser(final User user) {
redisTemplate.execute(new RedisCallback<Object>() {

public Object doInRedis(RedisConnection connection) throws DataAccessException {

connection.set(redisTemplate.getStringSerializer().serialize(user.getId() + ""),
redisTemplate.getStringSerializer().serialize(user.getName()));

return null;
}

});
}

public User getUser(final long id) {
return redisTemplate.execute(new RedisCallback<User>() {

public User doInRedis(RedisConnection connection) throws DataAccessException {
byte[] key = redisTemplate.getStringSerializer().serialize(id + "");
if (connection.exists(key)) {
byte[] value = connection.get(key);
String name = redisTemplate.getStringSerializer().deserialize(value);
User user = new User();
user.setName(name);
user.setId(id);
return user;
}
return null;
}

});
}

}


7.开始测试redis

public class App
{
@SuppressWarnings("resource")
public static void main( String[] args )
{
ApplicationContext ac =  new ClassPathXmlApplicationContext("classpath:/applicationContext.xml");
UserDao userDAO = (UserDao)ac.getBean("userDao");
User user = new User();
user.setId(1);
user.setName("liuxg");
userDAO.saveUser(user);

User liuxg = userDAO.getUser(1);
System.out.println(liuxg.getName());
}
}


测试过程中,若出现下面问题

1.Could not get a resource from the pool, Connection refused: connect

2.DENIED Redis is running in protected mode because protected mode is enabled…

参考/article/9701641.html

demo地址https://github.com/liuxg2013/spring-redis-.git
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: