【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也支持多连接实例一起工作。