Redis配置规范

1 简介

Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。

详细介绍可参考:Redis设计与实现

2 配置

2.1 配置文件

与Spring整合,通常使用 applicationContext-redis.xml 作为Redis配置文件的命名,web.xml会自动扫描并加载

2.2 配置说明

2.2.1 JedisPoolConfig

连接池的配置

maxIdle:最大空闲连接数

maxTotal:最大连接数

maxWaitMillis:最大等待时间

testOnBorrow:

2.2.2 JedisConnectionFactory

连接工厂

hostName:redis服务器地址

port:redis服务器端口

usePool:是否使用连接池

poolConfig-ref:连接池配置引用

2.2.3 StringRedisTemplate

使用模板:

connectionFactory-ref:连接工程引用

2.3 示例

<?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"
      xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

   <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
       <property name="maxIdle" value="300" />
       <property name="maxTotal" value="1000" />
       <property name="MaxWaitMillis" value="1000" />
       <property name="testOnBorrow" value="true" />
   </bean>

   <bean id="jedisConnFactory"
         class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
         p:hostName="${redis.host}" p:port="${redis.port}" p:usePool="true" p:poolConfig-ref="poolConfig" />

   <bean id="stringRedisTemplate"
         class="org.springframework.data.redis.core.StringRedisTemplate"
         p:connectionFactory-ref="jedisConnFactory"/>

</beans>

3 使用

// 注入Redis
@Autowired
private RedisTemplate<String,Object> redisTemplate;

public void demo () {
   // 字符串用法
   redisTemplate.opsForValue().set("key", "val");
    redisTemplate.opsForValue().set("key", "val", times);
    redisTemplate.opsForValue().set("key", "val", times, timeUnit);
    redisTemplate.opsForValue().get("key");

   // 哈希表(map)用法
   redisTemplate.opsForHash().put("key", "mapKey1", "val1");
    redisTemplate.opsForHash().put("key", "mapKey2", "val2");
    redisTemplate.opsForHash().get("key", "mapKey1");        
}

 

posted @ 2017-03-21 16:43  程序Dog-NO1  阅读(2680)  评论(0编辑  收藏  举报