redis------Hash操作(字典)

news2024/12/23 5:56:09

 Hash操作,redis中Hash在内存中的存储格式如下图:

 # hash类型就是咱们python中的字典,key-value,字典又叫hash类型   字典的key必须可hash

-字典类型在底层存储,基于数组存的
    key---{key:value,key:value}

 hset(name, key, value)

# name对应的hash中设置一个键值对(不存在,则创建;否则,修改)


# 参数:
    # name,redis的name
    # key,name对应的hash中的key
    # value,name对应的hash中的value


# 注:
    # hsetnx(name, key, value),当name对应的hash中不存在当前key时则创建(相当于添加)

 hmset(name, mapping)------------已弃用     -----可以用hset()

# 在name对应的hash中批量设置键值对
 
# 参数:
    # name,redis的name
    # mapping,字典,如:{'k1':'v1', 'k2': 'v2'}
 
# 如:
    # r.hmset('xx', {'k1':'v1', 'k2': 'v2'})

hget(name,key)

# 在name对应的hash中获取根据key获取value

hmget(name, keys, *args)

# 在name对应的hash中获取多个key的值
 
# 参数:
    # name,reids对应的name
    # keys,要获取key集合,如:['k1', 'k2', 'k3']
    # *args,要获取的key,如:k1,k2,k3
 
# 如:
    # r.mget('xx', ['k1', 'k2'])
    # 或
    # print r.hmget('xx', 'k1', 'k2')

hgetall(name)

# 获取name对应hash的所有键值
print(re.hgetall('xxx').get(b'name'))

hlen(name)

# 获取name对应的hash中键值对的个数

hkeys(name)

# 获取name对应的hash中所有的key的值

hvals(name)

# 获取name对应的hash中所有的value的值

hexists(name, key)

# 检查name对应的hash是否存在当前传入的key

hdel(name,*keys)

# 将name对应的hash中指定key的键值对删除
print(re.hdel('xxx','sex','name'))

 hincrbyfloat(name, key, amount=1.0)

# 自增name对应的hash中的指定key的值,不存在则创建key=amount
 
# 参数:
    # name,redis中的name
    # key, hash对应的key
    # amount,自增数(浮点数)
 
# 自增name对应的hash中的指定key的值,不存在则创建key=amount

hscan(name, cursor=0, match=None, count=None)

# 增量式迭代获取,对于数据大的数据非常有用,hscan可以实现分片的获取数据,并非一次性将数据全部获取完,从而放置内存被撑爆
 
# 参数:
    # name,redis的name
    # cursor,游标(基于游标分批取获取数据)
    # match,匹配指定key,默认None 表示所有的key
    # count,每次分片最少获取个数,默认None表示采用Redis的默认分片个数
 
# 如:
    # 第一次:cursor1, data1 = r.hscan('xx', cursor=0, match=None, count=None)
    # 第二次:cursor2, data1 = r.hscan('xx', cursor=cursor1, match=None, count=None)
    # ...
    # 直到返回值cursor的值为0时,表示数据已经通过分片获取完毕

hscan_iter(name, match=None, count=None)

# 利用yield封装hscan创建生成器,实现分批去redis中获取数据
 
# 参数:
    # match,匹配指定key,默认None 表示所有的key
    # count,每次分片最少获取个数,默认None表示采用Redis的默认分片个数
 
# 如:
    # for item in r.hscan_iter('xx'):
    #     print item

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

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

相关文章

【Vue】CI持续集成Vue前端项目--20230627

我的实践(CI) 1.打包 npm run build,产生dist文件 2.将dist文件的内容拷贝到static下面。不用在nginx文件夹中 3.编写nginx配置 default.conf server {listen 80;listen [::]:80;server_name localhost;location / {root /usr/…

【MySQL数据库】MHA高可用配置及故障切换

目录 一、MHA简介1.1什么是MHA1.2MHA的组成1.3MHA的特点 二、搭建MHA2.1故障模拟2.2故障修复 一、MHA简介 1.1什么是MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA 的出现就是解决MySQL 单点的问题。M…

掌握构造函数:打破面向对象编程难题

文章目录 I. 介绍解释构造函数的概念及其作用为什么构造函数是面向对象编程中至关重要的一部分 II. 创建构造函数介绍如何定义并创建一个构造函数着重介绍构造函数的语法和使用方法定义一个构造函数创建一个对象实例使用对象实例继承和原型 III. 构造函数的参数介绍构造函数的参…

模拟测试 青少年软件编程(Python)等级考试试卷(一级) 试题解析

【单选题】(每题2分) 1、与a>b and b>c等价的是?( ) A、a>b or b>c B、a>b>c C、a>b or not b D、not a 正确答案:B 试题解析:a>b并且b>c,那么a…

施工作业票管理

施工作业票管理是建筑行业中的一项重要管理,它是指在进行安全施工前,必须依据工程特点及安全要求,制定符合施工现场实际情况的施工作业方案,并按照程序进行作业申请及作业批准的程序书。比如说吊装作业票,高空作业票&a…

控制请求来源的HTML Meta标签 - Referrer详解

83. 控制请求来源的HTML Meta标签 - Referrer详解 在Web开发中&#xff0c;为了保护用户的隐私和安全&#xff0c;控制请求的来源信息是至关重要的。HTML中的<meta>标签提供了一种简单而有效的方式来控制请求的来源&#xff0c;其中包括Referrer&#xff08;引荐者&…

NVIDIA Jetson TX1,TX2,TX2 NX,AGX Xavier 和 Nano开发板GPIO口配置及应用

NVIDIA Jetson TX1&#xff0c;TX2&#xff0c;TX2 NX&#xff0c;AGX Xavier 和 Nano开发板GPIO口配置及应用 简介 ​ Jetson TX1、TX2、TX2 NX、AGX Xavier和Nano开发板都配备了一个包含40个引脚的GPIO接头&#xff0c;这些引脚可以用于数字输入输出。如下图 ​ 类似于Rasp…

cesium系列:根据中心点绘制圆和返回离某点最近的一个点的方法

1.背景 有需求写一个方法cesium 提供一个代码方法接收参数为function aaa(point1,point2,radius,num)其中点1和点2是经度纬度高度对象&#xff0c; 以point2为圆心&#xff0c;radius为半径生成一个圆弧&#xff0c;并创建一个数组在圆弧上均匀生成 num个点,点需要包含经纬高,…

2023年江西省研究生数学建模竞赛题目三解题思路

为了竞赛公平性&#xff0c;本人只提供思路&#xff0c;不提供具体的解决方法&#xff0c;欢迎交流讨论。给你们分享省赛特等奖的解题思路&#xff0c;哈哈哈&#xff0c;欢迎评论区讨论。这里给出第三题的解题思路。第二题的思路在这里&#xff1a;2023年江西省研究生数学建模…

打造加速组织变革的PMO—新药研发PMO实践分享︱先声药业研发PMO负责人

先声药业研发PMO负责人谢少斐先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;打造加速组织变革的PMO—新药研发PMO实践分享。大会将于8月12-13日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#xff1a; 2023年生物医药…

力扣 110. 平衡二叉树

题目来源&#xff1a;https://leetcode.cn/problems/balanced-binary-tree/description/ C题解1&#xff1a;递归法&#xff0c;后续遍历&#xff0c;从叶子节点开始&#xff0c;判断左右子树的深度差是否大于1。 /*** Definition for a binary tree node.* struct TreeNode {…

搭建OpenGL开发环境

资料 安装教程 软件下载 Visual Studio 2019CMakeGLFWGLAD glfw 3.3.8 下载glfw的目的&#xff1a; 获取压缩包里的include生成glfw3.lib 获取include 解压找到Include&#xff0c;include包含GLFW文件夹 生成glfw3.lib 使用CMake生成GLFW的工程文件在生成的目录中找…

基于OpenCV的傅里叶变换

基于OpenCV的傅里叶变换 傅里叶变换&#xff0c;表示能将满足一定条件的某个函数表示成三角函数&#xff08;正弦和/或余弦函数&#xff09;或者它们的积分的线性组合。在图像中变化剧烈的地方&#xff08;比如边界&#xff09;经过傅里叶别换后就相当与高频&#xff0c;反之变…

研究发现,电源指示灯的闪烁也能泄露密码

在巧妙的旁路攻击中&#xff0c;一组学者发现可以通过分析设备电源 LED 指示灯的变化来破解设备密钥。 内盖夫本古里安大学和康奈尔大学的研究人员在一项研究中表示&#xff0c;CPU 执行的密码计算会改变设备的功耗&#xff0c;从而影响设备电源 LED 的亮度。通过利用这一观察…

Git使用与配置

Git分布式版本控制工具 一、Git安装与配置 Git基本配置 打开Git Bash 设置用户信息 # 配置用户名和用户邮箱 git config --global user.name xxx git config --global user.email xxxxx.com查看用户信息 # 查看用户名和用户邮箱 git config --global user.name git config --g…

HVV蓝队扫盲,关于HVV你不知道的全在这

HVV蓝队扫盲,关于HVV你不知道的全在这 1.蓝队实战阶段职责分工2.蓝队防守的四个阶段3.蓝队常用防护手段4.蓝队常用安全设备边界防御设备安全检测设备流量监测设备终端防护设备威胁情报系统5.蓝队作战的三个阶段6.演练禁止采用的攻击方式1.蓝队实战阶段职责分工 1、领导小组。为…

【零基础入门学习Python---Python面向对象编程保姆级教程】

&#x1f680; Python &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

QT Creator上位机画波形之Qcharts使用学习

先看一个Qcharts的简单demo Qcharts是QT自带的组件&#xff0c;不需要另外添加文件。 打开QT Creator&#xff0c;新建一个工程&#xff0c;命名可以参考下图&#xff1a; 基类选择QWidget&#xff1a; .pro文件中添加charts模块 main.cpp源码&#xff1a; #include "…

Nginx配置块location及rewrite详解

目录 一、location配置块详解 1.location 大致分为三类 2.location 常用的匹配规则 3.location 匹配的优先级 4.location 匹配流程 5.location 的实际使用 二、if 模块常用的nginx全局变量 三、rewrite详解 1.rewrite简介 2.rewrite实现跳转原理 3.rewrite 执行顺序 …

房企如何向制造业学习,提高运营效率,降本增效?

导语 | 近年来&#xff0c;随着外部环境的变化&#xff0c;国内的房地产市场受到了很大的冲击&#xff0c;也发生了显著的变化。很多人都认为房地产行业已经迎来了「青铜时代」甚至是「黑铁时代」&#xff0c;已由过去的「高杠杆、高增长、高利润」经营模式转变为「低利润、低增…