Spring Data Redis入门示例:基于Jedis及底层API

Posted 王小帅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Data Redis入门示例:基于Jedis及底层API 相关的知识,希望对你有一定的参考价值。

使用底层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 的主要内容,如果未能解决你的问题,请参考以下文章

Spring Data Redis入门示例:程序配置

Spring Data Redis入门示例:字符串操作

Spring Data Redis —— 快速入门

Spring之Redis访问(Spring-data-redis)

Spring集成Redis方案(spring-data-redis)(基于Jedis的单机模式)(待实践)

分布式缓存技术redis学习系列----深入理解Spring Redis的使用