springboot 之 redis集合

redis简介

看这里

 

使用

1.pom.xml引入插件

<!-- redis -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- lettuce使用连接池连接redis,不用可以不加 -->
<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-pool2</artifactId>
</dependency>

springboot 2.x集成redis使用的lettuce,原因

jedis采用的是直连redis server,在多个线程之间共用一个jedis实例时,是线程不安全的。如果想避免线程不安全,可以使用连接池pool,这样每个线程单独使用一个jedis实例。由此带来的问题时,如果线程数过多,带来redis server的负载加大。有点类似于BIO的模式。

lettuce采用netty连接redis server,实例可以在多个线程间共享,不存在线程不安全的情况,这样可以减少线程数量。当然,在特殊情况下,lettuce也可以使用多个实例。有点类似于NIO的模式。

2.配置文件配置信息

#===============redis配置==========================
#连接池最大连接数
spring.redis.lettuce.pool.max-active=8
#连接池中最大最小空闲连接
spring.redis.lettuce.pool.min-idle=0
spring.redis.lettuce.pool.max-idle=8
#最大阻塞等待时间,负值表示没有限制
spring.redis.lettuce.pool.max-wait=-1

spring.redis.host=localhost
spring.redis.port=3306
spring.redis.password=12345678
spring.redis.database=2
#连接超时时间,单位ms
spring.redis.timeout=5000

#redis集群配置
spring.redis.cluster.nodes=10.150.2.123:6379,10.150.3.33:6379

#哨兵模式配置
#spring.redis.sentinel.master=mymaster
#spring.redis.sentinel.nodes=10.150.2.123:26379,10.150.2.124:26379,10.150.2.125:26379
#==================================================

3.需要自己完成手动配置,封装工具类

具体参考:

https://www.cnblogs.com/zeng1994/p/03303c805731afc9aa9c60dbbd32a323.html

 

这里是我使用的工具类:

https://download.csdn.net/download/u013919153/12001416

4.测试

    @Test
    public void testRedis(){
        RedisUtil.setex("11", "22", 100);
        System.out.println("设置成功");
        String str = RedisUtil.getStr("11");
        System.out.println("key: 11: value: "+str);
    }

结果:

 

开发查看工具:

redis desktop manager

技巧:

在保存redis时值最好用冒号隔开,目录分级。举例:user:111:test

 

在Spring Boot中整合Redis并存入集合,你需要进行以下几个步骤: 1. 首先,在pom.xml文件中添加Redis的依赖关系。你可以使用以下依赖关系来集成Redis: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 还需要添加以下依赖关系来配置redisTemplate: ``` <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> </dependency> ``` 2. 然后,在application.properties(或application.yml)文件中进行Redis的配置。你可以根据你的实际情况进行相应的配置,包括Redis服务器的主机、端口、数据库索引和密码等。以下是一个示例配置: ``` # REDIS (Redis 配置) # 连接工厂使用的数据库索引 spring.redis.database=0 # Redis服务器主机 spring.redis.host=127.0.0.1 # Redis服务器端口 spring.redis.port=6379 # 登录Redis服务器的密码 spring.redis.password= # 给定时间池可以分配的最大连接数 使用负值为无限制 spring.redis.pool.max-active=8 # 连接分配在池耗尽之前在抛出异常之前应阻止的最大时间量(连接池最大阻塞等待时间以毫秒为单位) 使用负值无限期地阻止 spring.redis.pool.max-wait=-1 # 连接池中的最大空闲连接 使用负值来表示无限数量的空闲连接 spring.redis.pool.max-idle=8 # 连接池中的最小空闲连接 此设置只有在正值时才有效果 spring.redis.pool.min-idle=0 # 连接超时(毫秒) spring.redis.timeout=30000 ``` 3. 最后,你可以使用RedisTemplate来操作Redis集合RedisTemplate是Spring Data Redis提供的主要操作Redis的类。你可以使用它来操作不同类型的集合,如List、Set、ZSet等。以下是一个示例代码: ```java @Autowired private RedisTemplate<String, String> redisTemplate; public void addToSet(String key, String value) { redisTemplate.opsForSet().add(key, value); } public Set<String> getSet(String key) { return redisTemplate.opsForSet().members(key); } ``` 在上面的示例中,我们使用RedisTemplate的opsForSet()方法来进行集合操作。addToSet()方法用于将值添加到集合中,而getSet()方法用于获取集合的所有成员。 请注意,这只是一个简单的示例,你可以根据自己的实际需求进行适当的调整。 参考资料: Redis官方文档:http://doc.redisfans.com/ Spring Boot集成Redis的步骤与代码详解 Redis的Java客户端:Jedis与Lettuce的比较<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [springboot整合redis](https://blog.csdn.net/u014135369/article/details/112171784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值