1. 程式人生 > >Spring Data Redis入門示例:基於Jedis及底層API (二)

Spring Data Redis入門示例:基於Jedis及底層API (二)

client classpath mode beans -name maven依賴 eas edi log

使用底層API:RedisConnectionFactoryRedisConnection可以直接操作Redis,下面是一個簡單的例子:

### Maven依賴

<properties>
    <jedis.version>2.9.0</jedis.version>
    <spring.redis.version>1.8.2.RELEASE</spring.redis.version>
</properties>
<dependencies>
    <!-- jedis -->
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>${jedis.version}</version>
    </dependency>
    
    <!-- spring-data-redis -->
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-redis</artifactId>
        <version>${spring.redis.version}</version>
    </dependency>
 </dependencies>

配置redis.properties

redis.host=127.0.0.1
redis.port=6379

配置Spring-data-redis.xml

<?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">

<!-- 讀取properties文件 -->
<bean id="propertyConfigurerForProject1"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="order" value="1" />
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
    <property name="ignoreResourceNotFound" value="true" />
    <property name="ignoreUnresolvablePlaceholders" value="true"/>
    <property name="locations">
        <list>
            <value>classpath*:redis.properties</value>
        </list>
    </property>
</bean> 
   
<!-- Jedis ConnectionFactory -->
<bean id="jedisConnectionFactory"  
      class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
      p:host-name="${redis.host}"
      p:port="${redis.port}" />
</beans>

操作Redis

public static void main( String[] args )
{
    ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-data-redis.xml");
    
     // 直接通過連接進行操作
     JedisConnectionFactory jedisConnectionFactory = context.getBean(JedisConnectionFactory.class);
     RedisConnection redisConnection = jedisConnectionFactory.getConnection();
    
     // 設置值
     redisConnection.set("name".getBytes(),"wangdh".getBytes());
   
     // 獲取值
     byte[] value = redisConnection.get("name".getBytes());
     System.out.println(new String(value));
}

示例說明

1. Spring Data Redis使用的是1.8.2.RELEASE,最新的2.x版本對配置進行了封裝,並且基於Spring Cache的實現使用起來不習慣,就沒選用2.x版本。
2. Spring Data Redis默認對數據進行了基於JDK的序列化,所以在redis中看到的數據是二進制類型數據,更改序列化方式即可。
3. 使用底層API:RedisConnection操作Redis,需要對數據進行手動轉換(String ??byte),需要進行多數重復性工作,效率低下,下一節介紹更高層次的封裝。

Spring Data Redis入門示例:基於Jedis及底層API (二)