通过 Java 操作 redis -- hash 哈希表基本命令

news2024/11/19 15:31:28

目录

使用命令 hset,hget

使用命令 hexists

使用命令 hdel

使用命令 hkeys,hvals

使用命令 hmget,hmset


关于 redis hash 哈希表类型的相关命令推荐看Redis - hash 哈希表

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

        本博客只介绍了一小部分常用的命令,其他的命令根据上面推荐的博客也能很简单的使用出来(推荐先看上面推荐的博客,有 redis 的原生命令)

使用命令 hset,hget

    /**
     * 使用命令 hset,hget
     * */
    public static void test1(Jedis jedis){
        //清除 redis 所有数据库中的所有数据
        jedis.flushAll();

        //向 redis 中添加一个哈希表类型的键值对,哈希表中添加了 f1 - 111 键值对
        //返回值为添加成功的键值对个数
        long result1=jedis.hset("key1","f1","111");
        System.out.println("result1:"+result1);

        //用哈希表作为参数,直接将哈希表中的键值对都添加到 key2 的哈希表中
        //返回值为添加成功的键值对个数
        HashMap<String,String> hashMap=new HashMap<>();
        hashMap.put("f1","111");
        hashMap.put("f2","111");
        hashMap.put("f3","111");
        long result2=jedis.hset("key2",hashMap);
        System.out.println("result2:"+result2);

        //获取 key1 对应的哈希表中,f1 对应的 value 值
        String result3=jedis.hget("key1","f1");
        System.out.println("result3:"+result3);
    }

运行结果

使用命令 hexists

    /**
     * 使用命令 hexists
     * */
    public static void test2(Jedis jedis){
        //清除 redis 所有数据库中的所有数据
        jedis.flushAll();
        jedis.hset("key1","f1","111");

        //判断 key1 对应的哈希表中是否存在 key 为 f1 的键值对,存在返回 true ,否则返回 false
        boolean result1=jedis.hexists("key1","f1");
        System.out.println("result1:"+result1);

        boolean result2=jedis.hexists("key1","f2");
        System.out.println("result2:"+result2);
    }

运行结果

使用命令 hdel

    /**
     * 使用命令 hdel
     * */
    public static void test3(Jedis jedis){
        //清除 redis 所有数据库中的所有数据
        jedis.flushAll();
        jedis.hset("key1","f1","111");
        jedis.hset("key1","f2","111");
        jedis.hset("key1","f3","111");

        //删除 key1 对应的哈希表中 key 为 f1 和 f2 的键值对
        long result1=jedis.hdel("key1","f1","f2");
        System.out.println("result1:"+result1);

        boolean result2=jedis.hexists("key1","f1");
        System.out.println("result2:"+result2);

        boolean result3=jedis.hexists("key1","f2");
        System.out.println("result3:"+result3);
    }

运行结果

使用命令 hkeys,hvals

    /**
     * 使用命令 hkeys,hvals
     * */
    public static void test4(Jedis jedis){
        //清除 redis 所有数据库中的所有数据
        jedis.flushAll();
        jedis.hset("key1","f1","111");
        jedis.hset("key1","f2","222");
        jedis.hset("key1","f3","333");

        //获取 key1 对应的哈希表中所有键值对的 key 值
        Set<String> result1=jedis.hkeys("key1");
        System.out.println("result1:"+result1);
        //获取 key1 对应的哈希表中所有键值对的 value 值
        List<String> result2=jedis.hvals("key1");
        System.out.println("result2:"+result2);
    }

运行结果

使用命令 hmget,hmset

    /**
     * 使用命令 hmget,hmset
     * */
    public static void test5(Jedis jedis){
        //清除 redis 所有数据库中的所有数据
        jedis.flushAll();

        Map<String,String>map=new HashMap<>();
        map.put("f1","111");
        map.put("f2","222");
        map.put("f3","333");

        //批量插入键值对到 key1 对应的 哈希表中,但要使用 Map 作为参数,类似于 hset
        //插入成功返回 OK,否则返回 FALSE
        String result1=jedis.hmset("key1",map);
        System.out.println("result1:"+result1);

        //批量获取 key1 对应的哈希表中 key 为 f1,f2,f3 对应的 value 值
        List<String> result2=jedis.hmget("key1","f1","f2","f3");
        System.out.println("result2:"+result2);

    }

运行结果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】static关键字用法

目录 一、static修饰局部变量 二、static修饰全局变量 三、static修饰函数 一、static修饰局部变量 首先我们来看两段代码: 代码1&#xff08;不加static&#xff09; #include <stdio.h> void test() {int i 0;i;printf("%d ", i); } int main() {int i…

【管理篇】如何向上沟通?

目录标题 向上沟通中下列问题最普遍和上级能不聊就不聊拿捏不好该不该和上级聊的分寸和尺度很难领会到上级的意图如何影响上级的一些观点和决策? 如何应对上述问题呢&#xff1f;&#x1f60e;如何管理上级&#xff1f;&#x1f44c; 向上沟通中下列问题最普遍 和上级能不聊就…

Ubuntu 24.04 LTS 安装 touchegg 开启触控板多指手势

文章目录 〇、概述一、安装 touchegg二、安装 gnome-shell 扩展 X11 Gestures三、安装可视化配置工具 touche 〇、概述 之前为了让笔记本支持多指手势&#xff0c;我安装的是 fusuma&#xff0c;安装教程详见 这篇文章 &#xff0c;考虑到 fusuma 安装过程繁琐且不支持可视化配…

Android ViewFlipper

Android ViewFlipper 在很多APP都有如下的头条/热榜效果&#xff08;上下自动翻滚&#xff09; 这种效果可以使用很多方式实现&#xff0c;有一个简便的方式可以使用ViewFlipper控件实现&#xff0c;ViewFlipper控件继承结果如下&#xff1a; 可以看出ViewFlipper 继承自ViewA…

解锁电脑潜能,提高办公效率:这个桌面助手您可千万不能错过!

文章目录 &#x1f4d6; 介绍 &#x1f4d6;&#x1f4dd; 你是否有这些烦恼&#xff1f;&#x1f4dd; 一站式效率工具平台&#x1f4dd; 插件市场&#xff1a;无限扩展的可能&#x1f4dd; 如何开始使用&#x1f3af; 结语 ⚓️ 相关链接 ⚓️ &#x1f4d6; 介绍 &#x1f4…

未授权访问:MongoDB未授权访问漏洞

目录 1、漏洞原理 2、环境搭建 3、未授权访问 防御手段 今天继续学习各种未授权访问的知识和相关的实操实验&#xff0c;一共有好多篇&#xff0c;内容主要是参考先知社区的一位大佬的关于未授权访问的好文章&#xff0c;还有其他大佬总结好的文章&#xff1a; 这里附上大佬…

OpenCV单窗口并排显示多张图片

OpenCV单窗口并排显示多张图片 效果代码 PS&#xff1a;本例的代码适合图片的宽度和高度都相同。 效果 原始三张图片&#xff1a; 合并显示&#xff1a; 代码 import cv2 import numpy as npdef opencv_multi_img():# 读取图片img1 cv2.imread(saw_1.jpeg)img2 cv2.im…

HTML学习|初识表单post和get提交、文本框和单选框、按钮、多选框和下拉框、文本域和文件域、搜索框滑块和简单验证、表单的应用、表单初级验证

初识表单post和get提交 form标签是表单&#xff0c;method控制表单提交方式&#xff0c;get方式&#xff0c;表单填写的参数能够在跳转的url地址中看到&#xff0c;post方式是看不到的&#xff0c;action是向何处跳转表单数据 input标签&#xff0c;且typetext&#xff0c;是…

Vue 3.3 编译宏 vue3.3新增了一些语法糖和宏,包括泛型组件、defineSlots、defineEmits、defineOptions

Vue 3.3新增了一些语法糖和宏&#xff0c;包括泛型组件、defineSlots、defineEmits、defineOptions defineProps 父组件传参 <template><Child name"my"></Child> </template> <script setup lang"ts"> import Child fro…

Java设计模式-工厂

Java设计模式中&#xff0c;工厂模式主要包括普通工厂模式以及抽象工厂模式&#xff0c;普通工厂模式是用于制造输出不同类型的对象&#xff0c;抽象工厂模式是用于制造输出不同类型的普通工厂&#xff0c;本文主要描述工厂模式的基本用法。 如上所示&#xff0c;使用普通工厂模…

牛客网刷题 | BC81 KiKi求质数个数

目前主要分为三个专栏&#xff0c;后续还会添加&#xff1a; 专栏如下&#xff1a; C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读&#xff01; 初来乍到&#xff0c;如有错误请指出&#xff0c;感谢&#xff01; 描述 KiKi知道了什么是质…

android基础-多线程

多线程&#xff1a; 创建子线程&#xff0c;子线程不允许直接更新UI&#xff0c;试想下如果多个线程去更新UI&#xff0c;则会造成资源错乱&#xff0c;如果枷锁就会使得代码冗余复杂。 android异步处理&#xff1a; 另一种异步多线程方法 doInBackground是在子线程中。

【线性代数】俗说矩阵听课笔记

基础解系的概念 31线性相关&#xff0c;线性无关&#xff0c;拓展与证明 n个m维向量在n<m时可能线性相关也可能线性无关&#xff0c;线性无关时可以构成某个m维空间的一组基。m不小于n时&#xff0c;秩小于n则线性相关。 n个m维向量在n>m时可一定线性相关。低维向量一定…

运行Spring Boot项目失败?显示java: 无法访问org.springframework.boot.SpringApplication,让我来看看~

idea项目运行报错截图&#xff1a; &#xff08;1&#xff09;查看错误提示“类文件具有错误的版本 61.0, 应为 52.0”&#xff0c;61.0对应的是jdk17&#xff0c;52.0对应1.8。 通过这个网址可以查询版本&#xff1a; https://stackoverflow.com/questions/9170832/list-of-ja…

[C/C++] -- 代理模式

代理模式是一种结构型设计模式&#xff0c;允许一个对象&#xff08;代理&#xff09;控制另一个对象的访问。代理对象通常充当客户端和实际目标对象之间的中间人&#xff0c;从而控制对目标对象的访问&#xff0c;可以在访问前后进行一些额外的处理。 代理模式的优点包括&…

线程的组成、执行特点、创建的两种方式

线程的组成&#xff1a; cpu时间片 运行内存&#xff1a;栈、堆 线程的逻辑代码 线程执行的特点&#xff1a; 抢占式执行&#xff0c;结果随机&#xff0c;效率高&#xff0c;可以防止单一线程长时间独占CPU 在单核cpu中&#xff0c;宏观上同时执行&#xff0c;微观上顺序…

C++:纯虚函数

在 C 中&#xff0c;纯虚函数&#xff08;pure virtual function&#xff09;是一个在基类中声明为纯虚函数的虚函数&#xff08;如果对虚函数不了解可以去我上一篇文章&#xff1a;C:虚函数&#xff09;。它在基类中没有默认实现&#xff0c;而是要求派生类提供实现。通过声明…

stm32f103zet6_RTC_1_介绍

RTC简介 实时时钟是一个独立的定时器。 RTC模块拥有一组连续计数的计数器&#xff0c;在相应软件配置下&#xff0c;可 提供时钟日历的功能。 修改计数器的值可以重新设置系统当前的时间和日期。 RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域&#xff0c;即在系统复…

初学java

注意点 1.使用关键字long的时候&#xff0c;在其赋值的时候要在后面加上大写或者小写的l&#xff0c;个人推荐大写&#xff0c;小写与数‘1’难区分。 2.函数的名字要与文件夹的名字相同&#xff0c;并且文件夹后面一定要有.java。例如这个的名字是Main,函数就得用这个&#x…

SwiGLU激活函数

SwiGLU激活函数已经成为LLM的标配了。它是GLU的变体&#xff0c;公式如下&#xff1a; SwiGLU ⁡ ( x , W , V , b , c , β ) Swish ⁡ β ( x W b ) ⊗ ( x V c ) \operatorname{SwiGLU}(x, W, V, b, c, \beta)\operatorname{Swish}_\beta(x Wb) \otimes(x Vc) SwiGLU(x,…