• 使用 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());
  • 相关阅读:
    国庆作业5
    rust引用
    springboot web外部容器部署
    离线数仓(7):数仓理论之数据仓库建模
    《游戏引擎架构》--学习3
    重学SpringBoot3-集成FreeMarker
    SENET和GateNet(推荐系统(embedding))
    CUDA小白 - NPP(10) 图像处理 Memort Management
    基础安全:CSRF攻击原理与防范
    springboot毕设项目宠物在线交易平台uu0m0(java+VUE+Mybatis+Maven+Mysql)
  • 原文地址:https://blog.csdn.net/JHIII/article/details/126542211