通过 Java 操作 redis -- 基本通用命令

       

目录

使用 String 类型的 get 和 set 方法

使用通用命令 exists ,del

使用通用命令 keys

使用通用命令 expire,ttl

使用通用命令 type


        要想通过 Java 操作 redis,首先要连接上 redis 服务器,推荐看通过 Java 操作 redis -- 连接 redis

        关于 redis 的基本通用命令推荐看Redis 的常用基本全局命令【小林优选】

使用 String 类型的 get 和 set 方法

        按道理这两个命令不是基本通用命令,但 redis 中要有数据我们才好进行分析,所以先学这两个命令

/**
     * 使用 String 类型的 get 和 set 方法
     * */
    public static void  test1(Jedis jedis){
        //清空 redis 中所有数据库的数据
        jedis.flushAll();
        //清空当前数据库中的数据
        //jedis.flushDB();

        jedis.set("key1","111");
        String value1=jedis.get("key1");
        System.out.println("value1:"+value1);

        jedis.set("key2","222");
        //通过 SetParams 类型的对象来设置 set 命令的选项,如 ex,px,xx,nx
        SetParams setParams=new SetParams();
        //设置秒级的过期时间
        setParams.ex(10);
        //设置毫秒级的过期时间
        //setParams.px(10000);
        //键值对仅更新(之前存在该key值则更新,不存在则没有效果)
        setParams.xx();
        //键值对仅创建(之前不存在该key值则创建,存在则没有效果)
        //setParams.nx();
        jedis.set("key2","333",setParams);
        String value2=jedis.get("key2");
        System.out.println("value2:"+value2);
    }

得到的结果为:

使用通用命令 exists ,del

public static void test2(Jedis jedis){
        //清空 redis 中所有数据库的数据
        jedis.flushAll();

        jedis.set("key1","111");
        jedis.set("key2","222");
        jedis.set("key3","333");

        //判断单个键值对是否存在,单位为 boolean
        boolean result1=jedis.exists("key1");
        System.out.println("result1:"+result1);
        //判断多个键值对是否存在,返回存在的键值对个数,单位为 long(可变长参数)
        long result2=jedis.exists("key1","key2","key3");
        System.out.println("result2:"+result2);

        //删除单个元素,返回值为删除的个数,单位为 long
        long result3=jedis.del("key1");
        System.out.println("result3:"+result3);
        //删除多个元素,返回值为删除的个数,单位为 long
        long result4=jedis.del("key1","key2","key3");
        System.out.println("result4:"+result4);
    }

得到的结果为:

使用通用命令 keys

    /**
     * 使用通用命令 keys
     * */
    public static void test3(Jedis jedis){
        //清空 redis 中所有数据库的数据
        jedis.flushAll();

        jedis.set("key1","111");
        jedis.set("key2","222");
        jedis.set("key3","333");

        //获取指定格式的 key,* 代表所有格式
        Set<String> set=jedis.keys("*");
        System.out.println(set);
    }

得到的结果为:

使用通用命令 expire,ttl

     /**
     * 使用通用命令 expire,ttl
     * */
    public static void test4(Jedis jedis) {
        //清空 redis 中所有数据库的数据
        jedis.flushAll();

        jedis.set("key1","111");
        //为 key1 键值对设置 10 秒的过期时间,设置成功返回 1
        long result1=jedis.expire("key1",10);
        System.out.println("result1:"+result1);
        //休眠 2 秒
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        //获取 key1 的过期时间
        long result2=jedis.ttl("key1");
        System.out.println("result2:"+result2);
    }

得到的结果为:

使用通用命令 type

    /**
     * 使用通用命令 type
     * */
    public static void test5(Jedis jedis){
        //清空 redis 中所有数据库的数据
        jedis.flushAll();

        //设置 value 为 String 类型的键值对
        jedis.set("key1","111");
        //获取 key1 对应 value 的类型
        String result1=jedis.type("key1");
        System.out.println("result1:"+result1);

        //设置 value 为 list 类型的键值对
        jedis.lpush("key2","111","222","333");
        //获取 key2 对应 value 的类型
        String result2=jedis.type("key2");
        System.out.println("result2:"+result2);

        //设置 value 为 hash 类型的键值对
        jedis.hset("key3","f1","111");
        //获取 key3 对应 value 的类型
        String result3=jedis.type("key3");
        System.out.println("result3:"+result3);

        //设置 value 为 set 类型的键值对
        jedis.sadd("key4","111","222","333");
        //获取 key4 对应 value 的类型
        String result4=jedis.type("key4");
        System.out.println("result4:"+result4);

        //设置 value 为 zset 类型的键值对
        jedis.zadd("key5",10,"zhangsan");
        //获取 key5 对应 value 的类型
        String result5=jedis.type("key5");
        System.out.println("result5:"+result5);
    }

得到的结果为:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/601653.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入探索van Emde Boas树:原理、操作与C语言实现

van Emde Boas (vEB) 树是一种高效的数据结构&#xff0c;用于处理整数集合。它是由荷兰计算机科学家Jan van Emde Boas在1977年提出的。vEB树在处理整数集合的查找、插入、删除和迭代操作时&#xff0c;能够以接近最优的时间复杂度运行。vEB树特别适合于那些元素数量在某个较小…

CSS引用

CSS定义 层叠样式表&#xff1a;&#xff08;Cascading Style Sheets,缩写为css&#xff09;,是一种样式表语言&#xff0c;用来描述HTML文档的呈现&#xff08;美化内容&#xff09; 书写位置&#xff1a;title标签下方添加style双标签&#xff0c;style标签里写入CSS代码 在s…

Spring Security 入门1

1. 概述 基本上&#xff0c;在所有的开发的系统中&#xff0c;都必须做认证(authentication)和授权(authorization)&#xff0c;以保证系统的安全性。 authentication [ɔ,θɛntɪ’keʃən] 认证 authorization [,ɔθərɪ’zeʃən] 授权 以论坛举例子&#xff1a; 【认证…

Covalent引入五个新网络运营商,提升去中心化特性和数据安全性

为了进一步扩大运营商基础以并践行去中心化网络基础设施的宗旨&#xff0c;Covalent Network&#xff08;CQT&#xff09;在网络中引入了五个新的区块样本生产者&#xff08;BSPs&#xff09;角色。该举措不仅重申了 Covalent Network&#xff08;CQT&#xff09;对社区驱动协议…

Dynamics 365入门:轻松创建您的首个应用

大家好&#xff0c;我是嘻嘻一个从事软件开发的老兵&#xff0c;需要交流可以加VX:lilinsans_weixin, 今天接上篇&#xff1a; 注册 Dynamics 365后&#xff0c;如果创建自己的第一个应用 注册完试用版可以以试用30天。今天我就分享一下如何创建第一个应用 1、Dynamics 36…

##08 数据加载与预处理:PyTorch的心脏

文章目录 前言深入理解torch.utils.data数据集(Dataset)数据加载器(DataLoader) 实战演练&#xff1a;创建自定义数据集数据转换(Transform)数据加载总结 前言 在深度学习的宇宙中&#xff0c;数据是燃料&#xff0c;模型是发动机。而在PyTorch的世界中&#xff0c;torch.util…

制作微信小程序的常见问题,2024新手小白入门必看

在当今高度数字化的世界&#xff0c;移动应用已经在日常生活和工作中不可或缺。在众多的应用程序中&#xff0c;有一个平台在中国市场上脱颖而出&#xff0c;占有绝对的一席之地——微信。 虽然被称为世界上最流行的消息和社交媒体平台之一&#xff0c;但微信提供了一个让其能…

计算机网络5——运输层1概述与UDP

文章目录 一、协议概述1、进程之间通信2、运输层的两个主要协议3、运输层的端口1&#xff09;服务器端使用的端口号2&#xff09;客户端使用的端口号 二、用户数据报协议 UDP1、UDP 概述2、案例分析3、UDP的首部格式 一、协议概述 1、进程之间通信 从通信和信息处理的角度看&…

邮件群发还能用吗

邮件群发仍然可以使用。不过&#xff0c;在进行邮件群发时&#xff0c;可能会遇到一些问题&#xff0c;如选择合适的邮件群发软件、应对垃圾邮件过滤器的挑战、管理收件人列表、邮件内容的个性化和定制、邮件投递的时间管理以及避免被列入黑名单等。 为了优化邮件群发的效果&a…

微信小程序知识点归纳(一)

前言&#xff1a;适用于有一定基础的前端开发同学&#xff0c;完成从网页开发到小程序开发的知识转换。 先立框架&#xff0c;后砌墙壁 回顾&#xff1a;了解微信小程序开发流程-CSDN博客 初始页面结构&#xff0c;三部分pages、utils、配置&#xff0c;分别存放页面、工具类…

图形渲染在AI去衣技术中的奇妙之旅

在这个数字化飞速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经成为了我们生活中不可或缺的一部分。它像一位神秘的魔法师&#xff0c;以其不可思议的力量改变着我们的世界。今天&#xff0c;我要和大家探讨的&#xff0c;是一个颇具争议却技术含金量极高的话…

PostgreSQL自带的命令行工具13- pg_waldump

PostgreSQL自带的命令行工具13- pg_waldump 基础信息 OS版本&#xff1a;Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本&#xff1a;16.2 pg软件目录&#xff1a;/home/pg16/soft pg数据目录&#xff1a;/home/pg16/data 端口&#xff1a;5777pg_waldump 是 Po…

【C++历练之路】红黑树——map与set的封装实现

W...Y的个人主页&#x1f495; gitee代码仓库分享&#x1f60a; 前言&#xff1a;上篇博客中&#xff0c;我们为了使二叉搜索树不会出现”一边倒“的情况&#xff0c;使用了AVL树对搜索树进行了处理&#xff0c;从而解决了数据在有序或者接近有序时出现的情况。但是AVL树还会…

【编码利器 —— BaiduComate】

目录 1. 智能编码助手介绍 2. 场景需求 3. 功能体验 3.1指令功能 3.2插件用法 3.3知识用法 3.4自定义配置 4. 试用感受 5. AI编程应用 6.总结 智能编码助手是当下人工智能技术在编程领域的一项重要应用。Baidu Comate智能编码助手作为一款具有强大功能和智能特性的工…

EPAI手绘建模APP数值几何变换

(10) 数值几何变换 图 257 数值几何变换工具栏 ① 数值几何变换和交互式几何变换都包括移动、旋转、缩放模型。但是交互式几何变换变换时的变换轴是模型自身中心为变换中心&#xff0c;以X、Y、Z方向的为变换方向&#xff0c;而数值几何变换可以指定变换中心和变换方向。另外&a…

HarmonyOS NEXT应用开发之多模态页面转场动效实现案例

介绍 本示例介绍多模态页面转场动效实现&#xff1a;通过半模态转场实现半模态登录界面&#xff0c; 与全屏模态和组件转场结合实现多模态组合登录场景&#xff0c;其中手机验证码登录与账号密码登录都为组件&#xff0c; 通过TransitionEffect.move()实现组件间转场达到近似页…

使用Portal V17搜索PN(profinet)设备的方法

这里的PN就是profinet&#xff0c;无需连接PLC&#xff0c;只需要将PN设备连接电脑即可&#xff0c;如下图&#xff0c; 跳出如下窗口&#xff0c; 点击start search 搜索完毕后就看到PN设备的名字啦&#xff1a; 是不是很简单呢。

LeetCode--所有质数、质数对

1.0 Q: 输出 100 以内所有质数 1.1 /* 第一层循环控制检查到哪个数* 第二层通过遍历除以每个比他小的数的方式,检查每个数是不是质数* 由于要遍历检查,设置一个标记,只要任意一次循环可以整除,我们就设置该标记为不是质数 */boolean isPrime true;for (int i 2; i < 100…

终于找到微信聊天记录SQLite数据库文件解密方法了,一起来看看吧!

https://github.com/xuchengsheng/ 获取当前登录微信的微信昵称、账号、手机号、邮箱、秘钥、微信Id、文件夹路径 将微信PC的多个聊天记录数据库合并为单一数据库文件 支持微信聊天对话窗口&#xff08;文本消息&#xff0c;引用消息&#xff0c;图片消息&#xff0c;表情消息…

STM32(六):定时器PWM呼吸灯 (标准库函数)

前言 上一篇文章已经介绍了如何用STM32单片机中的TIMER定时器来控制LED灯的交替闪烁&#xff0c;实现了点灯的第五种方式。这篇文章我们来介绍一下如何用STM32单片机中的定时器的PWM波来实现LED的“呼吸”。 一、实验原理 关于定时器这边就不多加赘述&#xff0c;详细请看上…