• 使用 Java 操作 Redis


    Jedis

    1. 概述

    Jedis 是一款使用 Java 操作 Redis 的工具,有点类似于 JDBC

    2. 引入依赖

    
        redis.clients
        jedis
        2.9.0
    

    3. 操作

    // 创建 jedis 客户端对象
    Jedis jedis = new Jedis("39.108.6.119", 6379);
    // 选择使用一个库,默认 0 号库
    jedis.select(0);
    // 清空当前库
    jedis.flushDB();
    //设置 redis 字符串数据
    jedis.set("key", "value");
    //存储数据到列表中
    jedis.lpush("list", "value1");
    jedis.lpush("list", "value2");
    jedis.lpush("list", "value3");
    // 更多操作
    ...
    // 释放资源
    jedis.close();

    具体 API 参考官网文档: jedis 4.3.0-m1 javadoc (redis.clients)

    SpringBoot 整合 Redis

    1. 概述

    SpringData 提供了 RedisTemplate 和 StringRedisTemplate,后者是前者的子集。两个模板基本一致,不同之处体现在操作的数据类型不同。RedisTemplate 中 key 和 value 泛型都是 Object,可以存储一个对象。而 StringRedisTemplate 的两个泛型都是 String,只能存储字符串

    2. 引入依赖

    
        org.springframework.boot
        spring-boot-starter-data-redis
    

    3. 操作

    @SpringBootTest(classes = RedisSpringbootApplication.class)
    @RunWith(SpringRunner.class)
    public class TestRedisTemplate {
    
        @Autowired
        private StringRedisTemplate stringRedisTemplate;
    
        @Autowired
        private RedisTemplate redisTemplate;
    
        @Test
        public void test() {
            stringRedisTemplate.opsForValue().set("name", "jack");
            String name = stringRedisTemplate.opsForValue().get("name");
            // 更多操作...
        }
    }

    具体 API 参考官网文档: Spring Data Redis 2.7.2 API

    4. 序列化

    无论使用 StringRedisTemplate 还是 RedisTemplate,都会对 key 和 value 进行序列化

    Spring-Data-Redis 的序列化方式是通过实现 RedisSerializer 接口,每一种实现都对应不同的序列化方式

    4.1 JDK 序列化

    org.springframework.data.redis.serializer.JdkSerializationRedisSerializer ,RedisTemplate 的默认序列化方式,序列化对象需实现 Serializable 接口,绝大多数情况下,不推荐使用该方式,因为这种方式序列化之后保存的是字节序列,对阅读不友好

    4.2 String 序列化

    org.springframework.data.redis.serializer.StringRedisSerializer ,StringRedisTemplate 的默认序列化方式,这种实现方式比较轻量与高效,但只能对字符串序列化,无法对普通对象序列化

    4.3 Json 序列化

    org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer 和 org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer ,两者都是使用 Jackson 实现 JSON 的序列化方式,不同的是,前者必须在构造序列化对象时传入对象的类型,后者则不需要,并且序列化时将对象类型也保存了

    4.4 修改序列化方案

    // 以修改序列化方案为 StringRedisSerializer 为例
    // 修改 key 序列化方案
    redisTemplate.setKeySerializer(RedisSerializer.string());
    // 修改 value 序列化方案
    redisTemplate.setValueSerializer(RedisSerializer.string());
    // 修改 hash key 序列化方案
    redisTemplate.setHashKeySerializer(RedisSerializer.string());
    // 修改 hash value 序列化方案
    redisTemplate.setHashValueSerializer(RedisSerializer.string());
  • 相关阅读:
    WEB使用VUE3实现地图导航跳转
    Java学习笔记(十三)
    Node.js基础
    Java锁到底是个什么东西
    RISC-V 基础指令汇总
    Django传递dataframe对象到前端网页
    [附源码]JAVA毕业设计敬老院管理系统(系统+LW)
    Canvas变形
    基于模态凝聚算法的特征系统实现算法的自然激励技术(Matlab代码实现)
    MySql 数据类型选择与优化
  • 原文地址:https://blog.csdn.net/JHIII/article/details/126542211