IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 《Redis操作Python系列、redis 基本命令 hash|CSDN创作打卡》 -> 正文阅读

[数据结构与算法]《Redis操作Python系列、redis 基本命令 hash|CSDN创作打卡》

目录

导读

应用场景·购物车

单个增加--修改(单个取出)——没有就新增,有的话就修改

增加与取出

取出所有的键值对

得到所有键值对的格式 hash长度

得到所有的keys(类似字典的取所有keys)

得到所有的value(类似字典的取所有value)?

判断成员是否存在(类似字典的in)?

删除键值对

自增自减整数(将key对应的value--整数 自增1或者2,或者别的整数 负数就是自减)


导读

hash类型是一个string类型的field和value的映射表,每个 hash 可以存储 232 - 1 键值对(40多亿),hash类型主要有以下应用场景。

应用场景·购物车

以用户id为key,商品id为field,商品数量为value,恰好构成了购物车的3个要素。

创建测试类【demo10.py】

?

单个增加--修改(单个取出)——没有就新增,有的话就修改

hset(name, key, value)

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

参数:

  • name - redis的name
  • key - name对应的hash中的key
  • value - name对应的hash中的value

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

import redis

r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.flushall()
r.hset("myhset", "护手霜", "29.9")
r.hset("myhset", "洗面奶", "69.9")
print(r.hkeys("myhset"))#取hash中所有的key
print(r.hget("myhset", "护手霜"))#单个取hash的key对应的值
print(r.hmget("myhset", "护手霜", "洗面奶"))#多个取hash的key对应的值
r.hsetnx("myhset", "洗面乳", "9.9")#只能新建
print(r.hget("myhset", "洗面乳"))

?

增加与取出

import redis

r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.flushall()
r.hset("myhset","赛亚人","1000万战斗力")
print(r.hget("myhset","赛亚人"))

?

取出所有的键值对

hgetall(name)
import redis

r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.flushall()
r.hset("myhset","赛亚人1","1000万战斗力")
r.hset("myhset","赛亚人2","2000万战斗力")
r.hset("myhset","赛亚人3","3000万战斗力")
r.hset("myhset","赛亚人4","4000万战斗力")
print(r.hgetall("myhset"))

得到所有键值对的格式 hash长度

hlen(name)
import redis

r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.flushall()
r.hset("myhset","赛亚人1","1000万战斗力")
r.hset("myhset","赛亚人2","2000万战斗力")
r.hset("myhset","赛亚人3","3000万战斗力")
r.hset("myhset","赛亚人4","4000万战斗力")
r.hset("myhset","赛亚人5","5000万战斗力")
print(r.hgetall("myhset"))
print(r.hlen("myhset"))

得到所有的keys(类似字典的取所有keys)

hkeys(name)

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

import redis

r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.flushall()
r.hset("myhset","赛亚人1","1000万战斗力")
r.hset("myhset","赛亚人2","2000万战斗力")
r.hset("myhset","赛亚人3","3000万战斗力")
r.hset("myhset","赛亚人4","4000万战斗力")
r.hset("myhset","赛亚人5","5000万战斗力")
print(r.hgetall("myhset"))
print(r.hkeys("myhset"))

得到所有的value(类似字典的取所有value)?

hvals(name)

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

import redis

r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.flushall()
r.hset("myhset","赛亚人1","1000万战斗力")
r.hset("myhset","赛亚人2","2000万战斗力")
r.hset("myhset","赛亚人3","3000万战斗力")
r.hset("myhset","赛亚人4","4000万战斗力")
r.hset("myhset","赛亚人5","5000万战斗力")
print(r.hgetall("myhset"))
print(r.hvals("myhset"))

判断成员是否存在(类似字典的in)?

hexists(name, key)

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

import redis

r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.flushall()
r.hset("myhset","赛亚人1","1000万战斗力")
r.hset("myhset","赛亚人2","2000万战斗力")
r.hset("myhset","赛亚人3","3000万战斗力")
r.hset("myhset","赛亚人4","4000万战斗力")
r.hset("myhset","赛亚人5","5000万战斗力")
print(r.hgetall("myhset"))
print(r.hexists("myhset","赛亚人2"))
print(r.hexists("myhset","赛亚人8"))

删除键值对

hdel(name,*keys)

将name对应的hash中指定key的键值对删除

import redis

r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.flushall()
r.hset("myhset","赛亚人1","1000万战斗力")
r.hset("myhset","赛亚人2","2000万战斗力")
r.hset("myhset","赛亚人3","3000万战斗力")
r.hset("myhset","赛亚人4","4000万战斗力")
r.hset("myhset","赛亚人5","5000万战斗力")
r.hdel("myhset","赛亚人4")
print(r.hgetall("myhset"))
print(r.hexists("myhset","赛亚人4"))

自增自减整数(将key对应的value--整数 自增1或者2,或者别的整数 负数就是自减)

hincrby(name, key, amount=1)

自增name对应的hash中的指定key的值,不存在则创建key=amount

参数:

  • name - redis中的name
  • key - hash对应的key
  • amount - 自增数(整数)
import redis

r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.flushall()
r.hset("myhset","赛亚人1","1000")
r.hset("myhset","赛亚人2","2000")
r.hset("myhset","赛亚人3","3000")
r.hset("myhset","赛亚人4","4000")
r.hset("myhset","赛亚人5","5000")
r.hincrby("myhset","赛亚人1")
r.hincrby("myhset","赛亚人1",1000)
print(r.hgetall("myhset"))

希望能大家有一定的帮助,欢迎一键三连哦。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-02-03 01:23:43  更:2022-02-03 01:23:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:19:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码