首页 > 数据库 >Redis的使用

Redis的使用

时间:2023-07-23 18:55:42浏览次数:31  
标签:name redis opsForValue Redis user 使用 stringRedisTemplate User

1.Redis:

客户端工具:

jedis 指令型工具,简单易用
lettuce redis官方认可,opsForValue、opsForHash
redission 解决了分布式的各种问题 比如锁
redis data 官方推荐,封装了jedis、lettuce

使用方式:

1.引入包:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
<!--        redis连接池-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>

2.引入redis序列化工具

@Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){

        //创建RedisTemplate对象
        RedisTemplate<String,Object> template = new RedisTemplate<>();
        //设置连接工厂
        template.setConnectionFactory(redisConnectionFactory);
        //创建json序列化工具
        GenericJackson2JsonRedisSerializer jsonRedisSerializer = new GenericJackson2JsonRedisSerializer();

        //设置key的序列化
        template.setKeySerializer(RedisSerializer.string());
        template.setHashKeySerializer(RedisSerializer.string());
        //设置value的序列化
        template.setValueSerializer(jsonRedisSerializer);
        template.setHashKeySerializer(jsonRedisSerializer);

        return template;
    

3.测试:

@SpringBootTest
class RedisDemoApplicationTests {

    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    void contextLoads() {

        redisTemplate.opsForValue().set("name","赵哥");

        Object name = redisTemplate.opsForValue().get("name");
        System.out.println(name);

    }

    @Test
    public void setSaveUser(){
        redisTemplate.opsForValue().set("user:100",new User("赵哥",30));

        User o = (User) redisTemplate.opsForValue().get("user:100");

        System.out.println("o = "+o);

    }


redis存储内容:

{
    "@class": "com.itjk.pojo.User",
    "name": "赵哥",
    "age": 30
}

简化存储值

@SpringBootTest
class RedisStringTests {

    // redis 自带的序列化器
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    private static final ObjectMapper mapper = new ObjectMapper();


    @Test
    void contextLoads() {

        stringRedisTemplate.opsForValue().set("name","赵哥");

        Object name = stringRedisTemplate.opsForValue().get("name");
        System.out.println(name);

    }

    @Test
    public void setSaveUser() throws JsonProcessingException {

        // 创建对象
        User user = new User("赵哥", 30);


        String json = mapper.writeValueAsString(user);


        stringRedisTemplate.opsForValue().set("user:200",json);

        String jsonUser = stringRedisTemplate.opsForValue().get("user:200");

        User o = mapper.readValue(jsonUser, User.class);

        System.out.println("o = "+o);

    }


    @Test
    public void setHash(){

        stringRedisTemplate.opsForHash().put("user:300","name","赵哥");
        stringRedisTemplate.opsForHash().put("user:300","age","30");

        Map<Object, Object> entries = stringRedisTemplate.opsForHash().entries("user:300");
        System.out.println("entries= "+entries);

    }


}

redis存储内容:

{
    "name": "赵哥",
    "age": 30
}

标签:name,redis,opsForValue,Redis,user,使用,stringRedisTemplate,User
From: https://www.cnblogs.com/xxs-oao/p/17575723.html

相关文章

  • C# 移除全部缓存 redis
    C#移除全部缓存redis简介在使用Redis作为缓存服务时,有时候需要移除全部缓存数据。本文将介绍如何使用C#来移除Redis中的全部缓存数据。流程下面是移除全部缓存的流程:步骤描述1创建Redis连接2获取Redis所有键3删除所有键代码实现步骤1:创建......
  • 如何使用 Swagger 和 ReDoc 制作 ASP.NET Core API 文档 (.NET 6)
    使用Swagger和ReDoc的API文档当您开发WebAPI时,其他开发人员能够了解他们在与您的API交谈时必须发布、放置、删除或获取的内容非常重要。当开发人员完成编码后,为他们构建良好的文档可能具有挑战性。由于有了Swagger(称为OpenAPI),您现在可以在编码时使用Swagger轻松......
  • Rxjava与MVVM框架配合使用
    RxJava与MVVM框架配合使用介绍在现代的移动应用程序开发中,MVVM(Model-View-ViewModel)架构模式变得越来越流行。它是一种将业务逻辑与用户界面分离的设计模式,它的目标是提高代码的可维护性和可测试性。而RxJava是一种响应式编程库,它可以简化异步编程,并提供了丰富的操作符来处理数据......
  • Ruby中使用shell变量
    在Ruby中使用shell变量1.流程概述下面是使用shell变量的整个流程的步骤概述:步骤描述步骤1在Ruby中获取shell变量的值步骤2在Ruby中设置shell变量的值接下来,我们将逐步介绍每个步骤所需执行的操作。2.步骤1:获取shell变量的值要在Ruby中获取shell变量的值,我......
  • Java并发工具CountDownLatch的使用和原理
    1.等待多线程完成的CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作。假如有这样一个需求:我们需要解析一个Excel里多个sheet的数据,此时可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完......
  • echarts记录篇(三 ):使用横向柱状图实现左侧分类对齐右侧显示数据效果及数据过多加滚动
    一、效果如下: 二、直接上代码上一篇已经说过左侧分类,右侧数据对齐的方法,如果需要移步上篇,此篇主要是纵向滚动条功能,代码如下:dataZoom:[{type:"slider",realtime:true,//拖动时,是否实时更新系列的视图startValue:0,endVal......
  • android 使用 flow
    Android使用Flow引言Flow是一个在Android开发中用于处理异步数据流的库。它可以帮助我们消除回调地狱,并提供更简洁、可读性更强的代码。本文将介绍Flow的基本概念,并提供一些使用Flow的示例代码。Flow的基本概念Flow是Kotlin协程中的一个组件,它代表了一个可以异步发射多个值的序......
  • echarts记录篇(一):使用柱状图实现排名前边有排序数字
    一、效果如图: 二、直接上代码yAxis:{inverse:true,//如果数据数组倒置排序,加上此代码data:categories1,offset:0,axisLabel:{fontSize:18,color:"#5DB3DC",margin:130,//距离右侧图形距离,配合axisLabel.l......
  • echarts记录篇(二 ):使用横向柱状图实现左侧分类对齐右侧显示数据效果
    一、效果图如下: 二、直接上代码yAxis:[{//左侧name分类inverse:true,//如果数据数组倒置排序,加上此代码data:categories1,axisLabel:{fontSize:16,color:'#fff'},axisLine:{......
  • dockerfile endpoint使用环境变量
    DockerfileEndpoint使用环境变量介绍在Docker开发环境中,使用环境变量是一种常见的做法。环境变量可以提供一种灵活且可配置的方式,用于在不同的容器之间传递参数。而Dockerfile中的Endpoint用于指定容器的入口点,即容器启动后要执行的命令或脚本。本文将介绍如何在Dockerfile中使......