Spring Data Redis入門示例:基於Jedis及底層API (二)
阿新 • • 發佈:2018-01-28
client classpath mode beans -name maven依賴 eas edi log
使用底層API:RedisConnectionFactory
和RedisConnection
可以直接操作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 (二)