redis的客户端
目录
- redis的客户端
- 一:jedis
- 1:jedis的使用步骤:
- 2:jedis连接池
- 二:springDataRedis
- 1:入门使用
- 2:配置序列化器
- 3:stringRedisTemplate
redis的客户端
一:jedis
1:jedis的使用步骤:
1:引入依赖
2:建立连接
3:执行命令;
4:释放资源:
private redis.clients.jedis.Jedis jedis;
@BeforeEach
public void setJedis(){
jedis =new redis.clients.jedis.Jedis("123.249.00.000",6379);
jedis.auth("12345");
}
@Test
public void testString(){
jedis.set("name","zhangsan");
System.out.println("jedis.get(\"name\") = " + jedis.get("name"));
}
@AfterEach
public void down(){
if (jedis!=null){
jedis.close();
}
}
这里先建立连接,然后执行操作,操作的名称和我们redis命令的名称几乎一样,然后再释放资源,释放资源之前要判断是否为空,不然可能会空指针;
2:jedis连接池
public class JedisConnectionFactory {
public static final JedisPool jedisPool;
static {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxIdle(8);
jedisPoolConfig.setMinIdle(0);
jedisPoolConfig.setMaxTotal(8);
jedisPool =new JedisPool(jedisPoolConfig,"123.249.86.145",6379,1000,"12345");
}
public static Jedis getJedisPool(){
return jedisPool.getResource();
}
}
具体代码:先声明一个连接池对象,在静态代码块中对连接池对象进行初始化,要传入配置信息,首先构造一个配置对象,配置最大连接数,最小连接数,最大连接等待时长,然后在构造一个静态方法能够获取jedis对象,从连接池中获取;
二:springDataRedis
1:入门使用
如何使用:
1:引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2:在配置文件中配置redis相关配置:
spring:
redis:
host: ip
port: 6379
password: your_password
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0
max-wait: 100ms
3:就能注入redistemplate来使用了:
@Autowired
private RedisTemplate redisTemplate;
@Test
void testString() {
redisTemplate.opsForValue().set("name","伟哥");
System.out.println("redisTemplate.opsForValue().get(\"name\") = " +
redisTemplate.opsForValue().get("name"));
}
2:配置序列化器
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
//创建template对象
RedisTemplate<String, Object> stringObjectRedisTemplate = new RedisTemplate<>();
//连接工厂
stringObjectRedisTemplate.setConnectionFactory(connectionFactory);
//创建json序列化器
GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
//为key配置序列化器
stringObjectRedisTemplate.setKeySerializer(RedisSerializer.string());
//为hashkey配置
stringObjectRedisTemplate.setHashKeySerializer(RedisSerializer.string());
//为value配置序列化器
stringObjectRedisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer);
//为hashvalue配置序列化器
stringObjectRedisTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer);
return stringObjectRedisTemplate;
}
3:stringRedisTemplate
为了节省空间,我们不使用自动转换json的序列化器,我们需要手动转换,然后我们可以使用stringtemplate,这里面自动帮我们配置了string的序列化器;
@Test
void testUser() {
User wfw = new User("wfw", 11);
String jsonString = JSON.toJSONString(wfw);
stringRedisTemplate.opsForValue().set("user:101",jsonString);
String o = stringRedisTemplate.opsForValue().get("user:100");
User user = JSONObject.parseObject(o, User.class);
System.out.println("o = " + user);
}
ing o = stringRedisTemplate.opsForValue().get("user:100");
User user = JSONObject.parseObject(o, User.class);
System.out.println("o = " + user);
}