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小时内删除。