对redis进行数据操作常用的方法是通过jedis和spring-data-redis,具体分场景:
在springboot中可以通过spring-data-redis
1 在pom.xml导入文件:(注意jar包版本,否则可能会出现找不到class错误)
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
<version>1.8.4.RELEASE</version>
</dependency>
<!--spring-data-redis-->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.8.4.RELEASE</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2 测试
package com.example.demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.test.context.junit4.SpringRunner;
import redis.clients.jedis.*;
import java.util.Arrays;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest(classes=DemoApplicationTests.class)
@Configurable
public class DemoApplicationTests {
//基于jedis测试redis连接,获取key为username的值
@Test
public void contextLoads() {
Jedis jedis = new Jedis("127.0.0.1", 6379);
System.out.println(jedis.ping()+jedis.get("username"));
}
@Test
public void testJedisPoolConfig(){
JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(100);
jedisPoolConfig.setMaxIdle(30);
jedisPoolConfig.setMinIdle(10);
JedisPool jedisPool=new JedisPool(jedisPoolConfig,"127.0.0.1",6379);
Jedis jedis=jedisPool.getResource();
System.out.println(jedis.get("username")+"这是jedispoolconfig");
List list=Arrays.asList("1","2");
System.out.println(list);
}
//分布式redis存取
@Test
public void testShardedJedis(){
JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
jedisPoolConfig.setMinIdle(10);
jedisPoolConfig.setMaxIdle(30);
jedisPoolConfig.setMaxTotal(100);
JedisShardInfo jedisShardInfo1=new JedisShardInfo("127.0.0.1",6379, 500);
JedisShardInfo jedisShardInfo2=new JedisShardInfo("127.0.0.1",6380, 500);
JedisShardInfo jedisShardInfo3=new JedisShardInfo("127.0.0.1",6381, 500);
JedisShardInfo jedisShardInfo4=new JedisShardInfo("127.0.0.1",6382, 500);
List<JedisShardInfo> list=Arrays.asList(jedisShardInfo1,jedisShardInfo2,jedisShardInfo3,jedisShardInfo4);
ShardedJedisPool shardedJedisPool=new ShardedJedisPool(jedisPoolConfig,list);
ShardedJedis jedis=shardedJedisPool.getResource();
System.out.println(jedis.get("username"));
}
@Test
public void testSpringdataredis(){
JedisConnectionFactory jedisConnectionFactory=new JedisConnectionFactory();
jedisConnectionFactory.setHostName("127.0.0.1");
jedisConnectionFactory.setPort(6379);
jedisConnectionFactory.afterPropertiesSet();//初始化属性值,没有的话会报空指针异常
StringRedisTemplate stringRedisTemplate=new StringRedisTemplate(jedisConnectionFactory);
stringRedisTemplate.setValueSerializer(new StringRedisSerializer());
stringRedisTemplate.opsForValue().set("zhangwuji","zhaomin");
System.out.println(stringRedisTemplate.opsForValue().get("zhangwuji"));
}
}