【redisson学习笔记】

1)clone项目

复制代码
git clone https://github.com/redisson/redisson.git

本来想直接用maven编译源码, 却发现各种错误,主要是maven的编译插件版本问题。

2)然后用maven包方式引入

复制代码
<dependencies>
        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>3.23.5</version>
        </dependency>
    </dependencies>

3)RedissonManager.java

复制代码
package org.example.redis;

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;

public class RedisManager {
    private static RedisManager INSTANCE = new RedisManager();

    private RedissonClient redisson;

    public static RedisManager inst() {
        return INSTANCE;
    }

    public void init() {
        Config config = new Config();
        config.useSingleServer()
                .setAddress("redis://127.0.0.1:6379");


        this.redisson = Redisson.create(config);

        System.out.println("redisson init success!");
    }

    public RedissonClient getRedisson() {
        return redisson;
    }
}

4)Main.java

复制代码
package org.example;

import org.example.redis.RedisManager;
import org.redisson.api.RMap;
import org.redisson.api.RedissonClient;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        RedisManager.inst().init();

        RedissonClient redisson = RedisManager.inst().getRedisson();
        RMap<String, List<String>> map = redisson.getMap("id:map");


        List<String> list = new ArrayList<>();
        list.add("abc");
        list.add("defg");
        map.put("1", list);


        RMap<String, List<String>> map1 = redisson.getMap("id:map");

        List<String> strings = map1.get("1");
        strings.remove(0);

        System.out.println(map1);

    }
}

1.突然想起来,其实我不需要去编译源码啊,直接关联起来源码不就可以调试了嘛。所以,我关联了源码就开始了调试,非常方便。

2.我们可以用断点,查看出RMap的实现是:RedissonMap,为啥取出List后在修改就不生效呢?

这是因为我们发现RMap的put执行时,其实是把value进行了编码,所以才能存下来。

5)源码查看

1.redisson

复制代码
org.redisson.api

这个肯定是最重要的包了,我们开发用的接口都在这,像RMap等。

相关推荐
我命由我123458 小时前
Photoshop - Photoshop 把两个 PSD 文件合并
学习·ui·职场和发展·产品运营·产品经理·学习方法·photoshop
摇滚侠9 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 JDBC 事务管理 阅读笔记 33
spring boot·笔记·后端
小雪崩10 小时前
嵌入式学习 day39:TCP并发服务器模型
linux·服务器·c语言·网络·学习·tcp/ip
知识分享小能手10 小时前
深度学习学习教程,从入门到精通,概率与信息论 — 知识点详解(3)
人工智能·深度学习·学习·数据挖掘·概率论
Wendy不吃榴莲10 小时前
# AI短剧教程 - 《后西游记》开播后,AI影视为什么更考验“连续讲故事”?
人工智能·笔记·学习·ai·视频
Agudamu116110 小时前
B站学习视频怎么变笔记:用 Ai好记 + Obsidian 搭建个人知识库的完整教程
人工智能·笔记·学习·音视频
kkkkkkkkkk_Z11 小时前
学嵌入式和Linux应用编程|学习日记:计算机网络基础
linux·学习·计算机网络
麦田里的粮仓11 小时前
图形设计工具箱(免费开源)
学习
每天题库11 小时前
交安C证报考条件有哪些?公路水运安全员C证报名时间及考试科目
学习·安全·考试·题库·考证
lifallen11 小时前
长任务怎样选择遗忘:clearing、compaction 与 memory
人工智能·学习·ai·ai编程