当前位置: 首页 > article >正文

Redis4:Redis的Java客户端

欢迎来到“雪碧聊技术”CSDN博客!

在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将不断探索Java的深邃世界,分享最新的技术动态、实战经验以及项目心得。

让我们一同在Java的广阔天地中遨游,携手提升技术能力,共创美好未来!感谢您的关注与支持,期待在“雪碧聊技术”与您共同成长!

目录

一、Redis的Java客户端有哪些?

二、Jedis

1、Jedis快速入门

①新建一个maven类型的project

②引入依赖

③建立连接

④测试string

⑤ 释放资源

演示:

总结

2、Jedis连接池

三、SpringDataRedis

1、认识SpringDataRedis

①什么是SpringDataRedis?

②SpringDataRedis提供的RedisTemplate工具类

2、SpringDataRedis(RedisTemplate工具类)的快速入门

①新建一个SpringBoot项目(这一步不是关键)

②引入两个依赖

③配置文件

④注入RedisTemplate对象

⑤编写测试

⑥查看运行结果

3、StringRedisTemplate的使用

①为什么要是用StringRedisTemplate?

②解决方案:使用StringRedisTemplate,来代替RedisTemplate

③使用StringRedisTemplate向redis中,存入对象(JSON格式)

4、StringRedisTemplate操作Hash类型

结语


一、Redis的Java客户端有哪些?

其中Spring Data Redis兼容了Jedis和lettuce。

我们下面就会学习jedis和Spring Data Redis。

二、Jedis

1、Jedis快速入门

①新建一个maven类型的project

②引入依赖

③建立连接

④测试string

⑤ 释放资源

演示:

①引入jedis依赖

这里顺便引入以下junit单元测试的依赖,方便我们后面展示:

②写代码

public class JedisTest {
    private Jedis jedis;

    @BeforeEach  //在每个@Test方法前执行
    void setUp(){
        //1、建立连接
        jedis = new Jedis("192.168.6.100", 6379);
        //2、设置密码
        jedis.auth("123321");
        //3、选择库
        jedis.select(0);
    }

    @Test
    void testString(){
        //存入数据
        String result = jedis.set("name", "虎哥");
        System.out.println("result = "+result);//操作成功,则返回"OK"
        String name = jedis.get("name");
        System.out.println("name = "+name);
    }

    @Test
    void testHash(){
        //插入hash数据
        jedis.hset("user:1", "name", "Jack");
        jedis.hset("user:1", "age", "21");
        //获取数据
        Map<String, String> map = jedis.hgetAll("user:1");
        System.out.println(map);
    }

    @AfterEach  //在每个@Test方法后执行
    void tearDown(){
        if(jedis != null){
            jedis.close();
        }
    }
}

两个Test方法的执行结果如下:

总结

2、Jedis连接池

由于jedis本身是线程不安全的,并且频繁地创建和销毁连接会有性能损耗,因此我们推荐大家使用Jedis连接池代替Jedis的直连方式。

工具类编写:

举例:

①编写连接池工具类

新建一个utils包,创建下面的工具类

public class JedisConnectionFactory {
    private static final JedisPool jedisPool;

    static{
        //配置连接池
        JedisPoolConfig poolConfig = new JedisPoolConfig();
        poolConfig.setMaxTotal(8);//该连接池最多创建8个连接
        poolConfig.setMaxIdle(8);//该连接池最多有8个空闲连接
        poolConfig.setMinIdle(0);//该连接池最少有0个空闲连接
        poolConfig.setMaxWaitMillis(1000);//当连接池中,没有连接可用,最多等待1000毫秒(1秒)
        //创建连接池对象
        jedisPool = new JedisPool(poolConfig,
                "192.168.6.100", 6379, 1000, "123321");

    }

    public static Jedis getJedis(){
        return jedisPool.getResource();
    }
}

②使用连接池工具类,来获取连接

之前有的代码意义也变了:

③测试之前的代码

以上就是Jedis的全部内容。

三、SpringDataRedis

1、认识SpringDataRedis

①什么是SpringDataRedis?

②SpringDataRedis提供的RedisTemplate工具类

其中不同的API,会操作Redis不同类型的数据。

2、SpringDataRedis(RedisTemplate工具类)的快速入门

①新建一个SpringBoot项目(这一步不是关键)

②引入两个依赖

③配置文件

默认使用redis的0号库。如果你想选择其他库,请指定库:

注意:此处SpringDataRedis默认使用的是lettuce,如果你想用Jedis实现,就再需要手动导入一下Jedis的依赖。

④注入RedisTemplate对象

⑤编写测试

⑥查看运行结果

以上就是SpringDataRedis的简单使用。

3、StringRedisTemplate的使用

①为什么要是用StringRedisTemplate?

看看上面存的name-虎哥这个值,有没有问题:

为什么存入的键值对,会变成如此的样子?

答案:因为没有进行序列化,就导致原来的内容被剁碎了,于是看起来就好像乱码。

②解决方案:使用StringRedisTemplate,来代替RedisTemplate

③使用StringRedisTemplate向redis中,存入对象(JSON格式)

首先需要引入jackson依赖:

然后,新建一个ObjectMapper的对象:

最后,在业务中,对Redis进行存、取对象时,都要手动转为JSON字符串。

查看结果:

4、StringRedisTemplate操作Hash类型

运行结果:

以上就是RedisTemplate和StringRedisTemplate的全部内容。

结语

至此,Redis基础篇完成了。

下面要开始Redis实战篇了。


http://www.kler.cn/a/387700.html

相关文章:

  • 极大似然估计笔记
  • Spring——自动装配
  • 计算机网络期末复习(知识点)
  • 使用sqlplus的easy connect时如何指定是链接到shared server还是dedicated process
  • 计算机网络socket编程(1)_UDP网络编程实现echo server
  • Golang--反射
  • 在Laravel中,最优的自定义验证规则方法
  • k8s和docker的区别及各自的应用场景
  • 快速解锁Rust Slice特性
  • PMP–一、二、三模、冲刺–分类–7.成本管理–技巧–挣值分析
  • 【LuatOS】修改LuatOS源码为PC模拟器添加高精度时间戳库timeplus
  • 十五、Linux线程(二)
  • 使用批处理脚本批量删除Maven无效依赖
  • docker搭建es集群
  • MATLAB-数学建模-无约束规划求解方法(非线性规划)
  • 使用 HuggingFace 提供的 Elasticsearch 托管交叉编码器进行重新排名
  • koa、vue安装与使用
  • ElasticSearch备考 -- Cross cluster replication(CCR)
  • 达梦数据库安全管理
  • 2024年9月电子学会青少年软件编程Python等级考试(六级)真题试卷
  • PySide6百炼成真(3)
  • 钉钉 H5 微应用 手机端调试
  • vue的组件使用
  • 如何管理PHP API版本