目录
- 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;
@BeforeEachpublic void setJedis(){jedis =new redis.clients.jedis.Jedis("123.249.00.000",6379);jedis.auth("12345");}@Testpublic void testString(){jedis.set("name","zhangsan");System.out.println("jedis.get(\"name\") = " + jedis.get("name"));}@AfterEachpublic 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: ipport: 6379password: your_passwordlettuce:pool:max-active: 8max-idle: 8min-idle: 0max-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);
}