spring boot 集成 Redis

Posted 不怕天黑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot 集成 Redis相关的知识,希望对你有一定的参考价值。

前提:你已经安装了Redis

1、创建一个spring boot 工程

2、pom 引入依赖:spring-boot-starter-data-redis

         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>    

3、在application.propertise 配置Redis相关参数

########################################################
###redis (redis)
########################################################
#开发
spring.redis.host=localhost
spring.redis.port= 6379
spring.redis.password=123456

spring.session.store-type=redis
spring.redis.database=1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle= 8
# 连接池中的最小空闲连接
spring.redis.pool.min-idle= 0
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active= 8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait= -1
# 连接超时时间(毫秒)
spring.redis.timeout= 6000

4.创建Redis工厂

@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
    @Value("${spring.redis.host}")
    private String host;

    @Value("${spring.redis.port}")
    private int port;

    @Value("${spring.redis.timeout}")
    private int timeout;

    @Value("${spring.redis.pool.max-idle}")
    private int maxIdle;

    @Value("${spring.redis.pool.max-wait}")
    private long maxWaitMillis;

    @Value("${spring.redis.password}")
    private String password;

    @Bean
    public JedisPool redisPoolFactory() {
      
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxIdle(maxIdle);
        jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
        jedisPoolConfig.setEvictionPolicyClassName("org.apache.commons.pool2.impl.DefaultEvictionPolicy");
        JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password);

        return jedisPool;
    }

5、需要redis时,直接注入即可

@Autowired
    private RedisTemplate redisTemplate;

6. redisTemplate 使用,Redis可以操作五种数据类型(字符串(String)、哈希/散列/字典(Hash)、列表(List)、集合(Set)、有序集合(sorted set))

6.1 字符串(String)

保存

redisTemplate.opsForValue().set("key1","value1");  
redisTemplate.opsForValue().set("key2","value2"); 

取值

String result1=redisTemplate.opsForValue().get("key1").toString();  
String result2=redisTemplate.opsForValue().get("key2").toString(); 

6.2 哈希/散列/字典(Hash)

保存

Map<String,String> map=new HashMap<String,String>();  
map.put("key1","1");  
map.put("key2","2");  
map.put("key3","3");  
map.put("key4","4");  
map.put("key5","5");  
redisTemplate.opsForHash().putAll("hashMap",map);

取值

String value=(String)redisTemplate.opsForHash().get("hashMap","key1");          //结果是 1
Map<String,String> resultMap= redisTemplate.opsForHash().entries("hashMap");   //结果是 {key1=1, key2=2, key5=5, key3=3, key4=4}
List
<String>reslutMapList=redisTemplate.opsForHash().values("hashMap"); //结果是 取得所有value值[1,2,3,4,5]
Set
<String>resultMapSet=redisTemplate.opsForHash().keys("hashMap"); //结果是 取得key值 [key1, key2, key5, key3, key4] 

6.3 列表(List)

保存

List<Pays> requestJsonList = new Array<>();
 redisTemplate.opsForList().leftPush("key1", requestJsonList);  //将list集合放入Redis

取值

List<Pays> requestJsonList1 = (List<Pays>) redisTemplate.opsForList().leftPop("key1");

7.总结操作

redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set


以上是关于spring boot 集成 Redis的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 集成 Redis

Spring Boot学习笔记——Spring Boot与Redis的集成

spring boot 集成 Redis

7Spring Boot 与 Redis 集成

Spring Boot集成Spring Cache 和 Redis

spring boot 常见的第三方集成