一.背景
spring-data是spring框架对数据处理的模块,其中包括数据库dao层处理,以及elasticsearch等等都有封装,而本文主要介绍spring-data-redis模块即对redis数据库的数据处理。
二.pom maven依赖
目前spring官网spring-data-redis最新稳定版本为2.0.1版本,根据官网介绍,目前该版本主要对spring框架3.x版本的实现,所以不支持3.x版本。
由于spring-test里面依赖了spring-beans,spring-core,spring-context等,所以只需导入spring-test maven依赖
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>2.0.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>3.1.2.RELEASE</version> <scope>test</scope> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> <scope>test</scope> </dependency>
三.配置# Redis settings redis.host=localhost redis.port=6479 redis.pass= redis.maxIdle=300 redis.maxActive=600 redis.maxWait=1000 redis.testOnBorrow=true<context:property-placeholder location="classpath:redis.properties" /> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="${redis.maxIdle}" /> <!--<property name="maxActive" value="${redis.maxActive}" /> <property name="maxWait" value="${redis.maxWait}" />--> <property name="testOnBorrow" value="${redis.testOnBorrow}" /> </bean> <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:host-name="${redis.host}" p:port="${redis.port}" p:password="${redis.pass}" p:pool-config-ref="poolConfig"/> <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate"> <property name="connectionFactory" ref="connectionFactory" /> </bean>四.代码实现
1.spring-data-redis代码运用
import org.junit.Test; import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; import javax.annotation.Resource; @ContextConfiguration(locations = {"classpath*:applicationContext.xml"}) public class RedisTest extends AbstractJUnit4SpringContextTests { @Resource(name = "connectionFactory") private JedisConnectionFactory connectionFactory; @Resource(name = "redisTemplate") private StringRedisTemplate redisTemplate; @Test public void testPing(){ RedisConnection redisConnection = connectionFactory.getConnection(); String ping = redisConnection.ping(); System.out.println(ping); } @Test public void testStr(){ /*redisTemplate.execute(new RedisCallback<Boolean>() { @Nullable @Override public Boolean doInRedis(RedisConnection redisConnection) throws DataAccessException { return null; } });*/ redisTemplate.execute((RedisConnection con) -> { byte[] key = "str".getBytes(); byte[] value = "hello world".getBytes(); con.set(key, value); return true; }); } @Test public void testList(){ redisTemplate.execute((RedisConnection con) -> { byte[] key = "list".getBytes(); byte[] ele1 = "java".getBytes(); byte[] ele2 = "c".getBytes(); con.rPush(key, ele1, ele2); return true; }); } }2.jedis(redis java客户端代码实现)//redis对String进行操作 public static void redisString(Jedis jedis){ System.out.println(jedis.get("str")); } //redis对List进行操作 public static void redisList(Jedis jedis){ List<String> list=jedis.lrange("list", 0, 10); for(String ele:list){ System.out.println(ele); } } //redis对Map进行操作 public static void redisMap(Jedis jedis){ Set<String> keys=jedis.hkeys("hash"); List<String> values=jedis.hvals("hash"); Map<String, String> maps=jedis.hgetAll("hash"); System.out.println(keys); System.out.println(values); System.out.println(maps); } //redis对Set进行操作 public static void redisSet(Jedis jedis){ Set<String> sets=jedis.smembers("set"); System.out.println(sets); } public static void main(String[] args) { Jedis jedis=new Jedis("localhost"); System.out.println("Connection to server sucessfully"); //查看服务是否运行 System.out.println("Server is running: "+jedis.ping()); System.out.println(jedis.keys("*")); redisMap(jedis); }详细代码,请移步:https://github.com/followwwind/springproject.git