【NoSQL】SpringBoot+Redis简单使用
【NoSQL】SpringBoot+Redis简单使用
Redis是一款key-value存储结构的内存级NoSQL数据库;支持多种数据存储格式、支持持久化、支持集群
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
spring:
redis:
host: localhost
port: 6379
根据要操作的不同数据类型使用不同的接口API
ops*
:获取各种数据类型操作接口
private RedisTemplate redisTemplate;
是以对象为操作的基本单元,可以指定泛型
private StringRedisTemplate stringRedisTemplate;
是以字符串为操作的基本单元在客户端操作的都是以字符串为基本单元操作的
@SpringBootTest
class RedisApplicationTest{
@Autowired
private RedisTemplate redisTemplate;
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
void set(){
ValueOperations<String,String> ops = stringRedisTemplate.opsForValue();
ops.set("age",41)
}
@Test
void get(){
ValueOperations<String,String> ops = stringRedisTemplate.opsForValue();
Object age = ops.get("age");
}
@Test
void set(){
ValueOperations ops = redisTemplate.opsForValue();
ops.set("age",41)
}
@Test
void get(){
ValueOperations ops = redisTemplate.opsForValue();
Object age = ops.get("age");
}
@Test
void hset(){
ValueOperations ops = redisTemplate.opsForHash();
ops.put("info","a","aaa")
}
@Test
void hget(){
ValueOperations ops = redisTemplate.opsForHash();
Object info_a = ops.get("info","a");
}
}
jedis操作客户端
lettuce默认的redis客户端实现技术
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
spring:
redis:
host: localhost
port: 6379
client-type: jedis
jedis:
pool:
max-active: 16
lettcus与jedis区别:
jedis连接Redis服务器是直连模式,当多线程模式下使用jedis会存在线程安全问题,解决方案可以通过配置连接池使每个连接专用,这样整体性能就大受影响。
lettcus基于Netty框架进行与Redis服务器连接,底层设计中采用StatefulRedisconnection。statefulRedisconnection自身是线程安全的,可以保障并发访问安全问题,所以一个连接可以被多线程复用。当然lettcus也支持多连接实例一起工作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具