SpringBoot 集成Jedis操作set
题外话: Redis是个有趣的东西,相信搞java的或多或少都会用到,面试时也总离不开问Redis,之前觉得redis只是用做缓存,飞快!也因为最初在封装底层的时候,使用Redisson,所以大部分都只用到了String这种类型,不管相应的value是List还是Map,最多也就以json格式存储,慢慢的用多了,才发现在业务中错过了许多优化的地方; 其中Set类型是一个不错的选择,举个例子,我们实际业务中存在粉丝订阅关系,同时,因为采用Spring Cloud分布式架构,加上各个微服务之间做了分库,导致许多地方在查询时需要feign调用订阅关系去做其他逻辑,用Set存储可以解决粉丝关注,粉丝数统计,我关注的人也关注了谁等等问题; 1、pom.xml - <!-- jedis -->
- <dependency>
- <groupId>redis.clients</groupId>
- <artifactId>jedis</artifactId>
- <version>2.8.2</version>
- </dependency>
复制代码2、注入bean - @Bean
- public JedisPool redisPoolFactory(
- @Value("${spring.redis.host}") String redisHost,
- @Value("${spring.redis.port}") int redisPort,
- @Value("${spring.redis.password}") String redisPassword,
- @Value("${spring.redis.database}") int database ,
- @Value("${spring.redis.jedis.pool.max-wait}") int maxWaitMillis,
- @Value("${spring.redis.jedis.pool.max-idle}") int maxIdle,
- @Value("${spring.redis.jedis.pool.max-active}") int maxActive
- ){
- JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
- jedisPoolConfig.setMaxIdle(maxIdle);
- jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
- jedisPoolConfig.setMaxTotal(maxActive);
- jedisPoolConfig.setMinIdle(0);
- jedisPoolConfig.setMaxIdle(maxIdle);
- JedisPool jedisPool = new JedisPool(jedisPoolConfig,redisHost,redisPort,0,redisPassword);
- return jedisPool;
- }
- @Bean
- public JedisUtils jedisUtils (JedisPool jedisPool ){
- return new JedisUtils(jedisPool);
- }
复制代码3、JedisUtils操作set
|