【NoSQL】SpringBoot+Redis简单使用

【NoSQL】SpringBoot+Redis简单使用

Redis是一款key-value存储结构的内存级NoSQL数据库;支持多种数据存储格式、支持持久化、支持集群

windows下载:https://github.com/tporadowski/redis/releases

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

posted @ 2024-04-01 17:22  燕子去了  阅读(6)  评论(0编辑  收藏  举报

Powered by .NET 8.0 on Kubernetes

我会翻山越岭,到每一个我想去的地方

...