springdata+redis配置详解
springdata设计初衷是位简化数据类型和数据的持久化存储,它并不局限是关系型数据库还是nosql数据库,都提供了简化的数据库连接,让数据获取变得更加的简单。所有这些的实现有统⼀的api提供。
本⽂主要设置spring-data-redis的相关配置特性:
1.RedisTemplate:⾼度封装的,⾃动连接池管理类;
2.对数据类型进⾏了归类,封装了操作接⼝类:
a) ValueOperations:key-value操作
b) setOperations:set的相关操作
c) ZsetOperations:
d) HashOperations:hash数据类型操作
e) ListOperations:list数据类型操作
3.对事务进⾏封装,通过容器进⾏控制。
spring framework和spring的关系
4.序列化机制,提供各种序列化策略选择。
集成配置详解:
1.提供简单封装保存查询操作接⼝,以及实现类。
1public interface RedisCommand {
2
3public void save(String key,String value);
4
5public String get(String key);
6
7public <T> T getObject(String key,Class<T> clazz);
8
9 }
View Code
1 @Service
2public class RedisHandle implements RedisCommand {
3
4 @Autowired
5protected RedisTemplate<String, String> redisTemplate;
6
7 @Override
8public void save(final String key, final String value) {
9 ute(new RedisCallback<Object>() {
10 @Override
11public Object doInRedis(RedisConnection connection)
12throws DataAccessException {
13 connection.set(
14 StringSerializer().serialize(
15 "user.uid." + key), redisTemplate
16 .getStringSerializer().serialize(value));
17return null;
18 }
19 });
20 }
21
22 @Override
23public String get(final String key) {
ute(new RedisCallback<String>() {
25 @Override
26public String doInRedis(RedisConnection connection)
27throws DataAccessException {
28byte[] keys = StringSerializer().serialize(
29 "user.uid." + key);
30if (ists(keys)) {
31byte[] value = (keys);
32 String name = StringSerializer()
33 .deserialize(value);
34return name;
35 }
36return null;
37 }
38 });
39 }
40
41 @Override
42public <T> T getObject(String key, Class<T> clazz) {
43// TODO Auto-generated method stub
44return null;
45 }
46
47
48 }
View Code
2.业务逻辑类
1 @Service(value="userRedis")
2public class UserRedisImpl implements UserRedis{
3
4 @Autowired
5protected RedisHandle handler;
6
7 @Override
8public void saveUser(final User user) {
9 handler.Id()+"", JSONString(user));
10 }
11
12 @Override
13public User getUser(final long id) {
14 String value =(id+"");
15 User u= JSONObject.parseObject(value, User.class);
16return u;
17 }
18 }
View Code
3.测试类:
1public class TestUseRedis {
2
3 @SuppressWarnings("resource")
4public static void main(String[] args) {
5 ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:/l");
6 UserRedis userDAO = (Bean("userRedis");
7 System.out.println("userDao"+JSONString(userDAO));
8 User user1 = new User();
9 user1.setId(4);
10 user1.setName("oba2sssss220a");
11 userDAO.saveUser(user1);
12 User user2 = User(2);
13 System.out.Name());
14 }
15 }
View Code
4.配置⽂件相关:
spring-redis:
1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="/schema/beans"
3 xmlns:xsi="/2001/XMLSchema-instance" xmlns:p="/schema/p"
4 xmlns:context="/schema/context"
5 xmlns:jee="/schema/jee" xmlns:tx="/schema/tx"
6 xmlns:aop="/schema/aop"
7 xsi:schemaLocation="
8 /schema/beans /schema/beans/spring-beans.xsd
9 /schema/context /schema/context/spring-context.xsd"> 10
11 <context:property-placeholder location="classpath:redis.properties" />
12 <context:component-scan base-package="port.web.service">
13 </context:component-scan>
14 <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
15 <property name="maxIdle" value="${redis.maxIdle}" />
16 <property name="maxActive" value="${redis.maxActive}" />
17 <property name="maxWait" value="${redis.maxWait}" />
18 <property name="testOnBorrow" value="${stOnBorrow}" />
19 </bean>
20
21 <bean id="connectionFactory" class="org.tion.jedis.JedisConnectionFactory"
22 p:host-name="${redis.host}" p:port="${redis.port}" p:password="${redis.pass}" p:pool-config-ref="poolConfig"/> 23
24 <bean id="redisTemplate" class="org.StringRedisTemplate">
25 <property name="connectionFactory" ref="connectionFactory" />
26 </bean>
27
28 </beans>
View Code
pom引⽤:
1 <!-- spring data -->
2 <dependency>
3 <groupId>org.springframework.data</groupId>
4 <artifactId>spring-data-redis</artifactId>
5 <version>1.0.2.RELEASE</version>
6 </dependency>
7
8 <dependency>
9 <groupId>redis.clients</groupId>
10 <artifactId>jedis</artifactId>
11 <version>2.1.0</version>
12 </dependency>
View Code
redis.properties:
1 redis.host=127.0.0.1
2 redis.port=6379
3 redis.pass=
4
5 redis.maxIdle=300
6 redis.maxActive=600
7 redis.maxWait=1000
stOnBorrow=true
View Code
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论