返回顶部
首页 > 资讯 > 后端开发 > Python >4.Python操作Redis:哈希(H
  • 191
分享到

4.Python操作Redis:哈希(H

操作PythonRedis 2023-01-31 07:01:00 191人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

Redis 数据库hash数据类型是一个string类型的key和value的映射表,适用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。 python的redis模块实现了Redis哈

Redis 数据库hash数据类型是一个string类型的key和value的映射表,适用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
python的redis模块实现了Redis哈希(Hash)命令行操作的几乎全部命令,包括HDEL、HEXISTS、HGET、HGETALL、HINCRBY、HKEYS、HLEN 、HMGET 、HMSET 、HSET 、HSETNX 、HVALS 。但是无法支持HINCRBYFLOAT 、HSCAN 等命令。

函数说明

  1. HDEL: 删除对应哈希(Hash)表的指定键(key)的字段,hdel(self, name, key)
  2. HEXISTS: 检测哈希(Hash)表对应键(key)字段是否存在,返回布尔逻辑,hexists(self, name, key)
  3. HGET: 获取哈希(Hash)指定键(key)对应的值,hget(self, name, key)
  4. HGETALL: 获取哈希(Hash)表的键-值对(key-value pairs),返回Python字典类型数据,hgetall(self, name)
  5. HINCRBY: 为哈希表(Hash)指定键(key)对应的值(key)加上指定的整数数值(int,可为负值),参见 [Python操作Redis:字符串(String)],(Http://blog.csdn.net/u012894975/article/details/51285733)hincrby(self, name, key, amount=1),Redis 中本操作的值被限制在 64 位(bit)有符号数字。
  6. HKEYS: 返回哈希表(Hash)对应键(key)的数组(Python称之为列表List),hkeys(self, name)
  7. HLEN: 获取哈希表(Hash)中键-值对(key-value pairs)个数,hlen(self, name)
  8. HMGET: 获取哈希表(Hash)中一个或多个给点字段的值,不存在返回nil(Redis命令行)/None(Python),hmget(self, name, keys),其中keys可以为列表(list)
  9. HMSET: 设置对个键-值对(key-value pairs)到哈希表(Hash)中,python输入值(mapping)为字典(dictionary)类型,hmset(self, name, mapping)
  10. HSET: 为哈希表(Hash)赋值,若键(key)存在值(value)则覆盖,不存在则创建,hset(self, name, key, value)
  11. HSETNX:为哈希表(Hash)不存值(value)的键(key)赋值,存在操作无效,对应值(value)无变化,hsetnx(self, name, key, value)
  12. HVALS:返回哈希表(Hash)对应值(value)的列表,hvals(self, name)

代码示例

#!/usr/bin/python
import redis
import time
## Connect local redis service
client =redis.Redis(host='127.0.0.1',port=6379,db=0)
print "Connection to server successfully!"
dicKeys = client.keys("*")
print dicKeys

### Redis hash command part Start ###
# hset: Set key to value with hash name,hset(self, name, key, value)
# hget: Return the value of ``key`` within the hash ``name``, hget(self, name, key)
client.hset('myhash','field1',"foo")
hashVal = client.hget('myhash','field1')
print "Get hash value:",hashVal

# Get none-value
hashVal = client.hget('myhash','field2')
print "None hash value:",hashVal

# hexists: Returns a boolean indicating if ``key`` exists within hash ``name``
keyList= ['field1','field2']
for key in keyList:
    hexists = client.hexists('myhash',key)
    if hexists :
        print "Exist in redis-hash key:",key
    else:
        print "Not exist in redis-hash key:",key

# hgetall: Return a Python dict of the hash's name/value pairs
client.hset('myhash','field2',"bar")
valDict = client.hgetall('myhash')
print "Get python-dict from redis-hash",valDict

# hincrby: Increment the value of ``key`` in hash ``name`` by ``amount``
# default increment is 1,
client.hset('myhash','field',20)
client.hincrby('myhash','field')
print "Get incrby value(Default):",client.hget('myhash','field')
client.hincrby('myhash','field',2)
print "Get incrby value(step: 2):",client.hget('myhash','field')
client.hincrby('myhash','field',-3)
print "Get incrby value(step: -3):",client.hget('myhash','field')

# no method hincrbyfloat

#hkeys: Return the list of keys within hash ``name``
kL = client.hkeys('myhash')
print "Get redis-hash key list",kL

#hlen: Return the number of elements in hash ``name``
lenHash =client.hlen('myhash')
print "All hash length:",lenHash

#hmget: Returns a list of values ordered identically to ``keys``
#hmget(self, name, keys), keys should be python list data structure
val =client.hmget('myhash',['field','field1','field2','field3','fieldx'])
print "Get all redis-hash value list:",val

#hmset:  Sets each key in the ``mapping`` dict to its corresponding value in the hash ``name``
hmDict={'field':'foo','field1':'bar'}
hmKeys=hmDict.keys()
client.hmset('hash',hmDict)
val = client.hmget('hash',hmKeys)
print "Get hmset value:",val

#hdel: Delete ``key`` from hash ``name``
client.hdel('hash','field')
print "Get delete result:",client.hget('hash','field')

#hvals:  Return the list of values within hash ``name``
val = client.hvals('myhash')
print "Get redis-hash values with HVALS",val

#hsetnx: Set ``key`` to ``value`` within hash ``name`` if ``key`` does not exist.
#      Returns 1 if HSETNX created a field, otherwise 0.
r=client.hsetnx('myhash','field',2)
print "Check hsetnx execute result:",r," Value:",client.hget('myhash','field')
r=client.hsetnx('myhash','field10',20)
print "Check hsetnx execute result:",r,"Value",client.hget('myhash','field10')

hashVal = client.hgetall('profile')
print hashVal
#Empty db
client.flushdb()

参考资料:
1、Redis 哈希(Hash)
2、Python redis文档(python交互模式下命令>>>help redis)

--结束END--

本文标题: 4.Python操作Redis:哈希(H

本文链接: https://lsjlt.com/news/192001.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 4.Python操作Redis:哈希(H
    Redis 数据库hash数据类型是一个string类型的key和value的映射表,适用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。 Python的redis模块实现了Redis哈...
    99+
    2023-01-31
    操作 Python Redis
  • Redis基本数据类型哈希Hash常用操作命令
    目录Redis数据类型Hash常用操作一、hset二、hget三、hmset四、hmget五、hgetall六、hdel七、hlen八、hexists九、hkeys十、hvals十一...
    99+
    2024-04-02
  • Python利用redis-py实现哈希数据类型的常用指令操作
    目录哈希数据类型的创建与数据的添加 - hmset哈希数据类型已存在的记录添加记录 - hset哈希数据类型已存在的记录删除记录 - hdel哈希数据类型判断某记录是否存在 - hexists获取哈希数据类型的所有元素 ...
    99+
    2024-04-02
  • Redis基本数据类型哈希Hash常用操作实例分析
    这篇文章主要介绍了Redis基本数据类型哈希Hash常用操作实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Redis基本数据类型哈希Hash常用操作实例分析文章都会有所收获,下面我们一起来看看吧。Red...
    99+
    2023-06-30
  • Oracle表连接操作——Hash Join(哈希连接)下
     Hash Join是Oracle CBO时代经常出现的一种连接方式,对海量数据处理时经常出现在执行计划里。本篇的上篇(http://space.itpub.net/17203031/viewspace-697442) ...
    99+
    2023-06-06
  • Oracle表连接操作——Hash Join(哈希连接)上
     在Oracle中,确定连接操作类型是执行计划生成的重要方面。各种连接操作类型代表着不同的连接操作算法,不同的连接操作类型也适应于不同的数据量和数据分布情况。  无论是Nest Loop Join(嵌套循环),...
    99+
    2023-06-06
  • C++中使用哈希表(unordered_map)的一些常用操作方法
    目录1.建立基本数据类型的哈希表2.向哈希表中添加元素1).insert 函数2).用数组方法直接添加3.成员函数begin(),end()函数find()查找函数count() 查...
    99+
    2024-04-02
  • Python 操作Redis
    在 Python中我们使用 redis库来操作 Redis数据库。Redis数据库的使用命令这里就不介绍了。 需要安装 redis库。检查是否安装redis: pip redis 如果未安装,使...
    99+
    2023-09-16
    Python 操作Redis
  • Python操作redis
    Python操作redispythonredis数据库searchimport首先确保redis已经正常启动。安装   可以去pypi上找到redis的Python模块:   http://pypi.python.org/pypi%3Aac...
    99+
    2023-01-31
    操作 Python redis
  • Python之Redis操作
    目录 一. 介绍A. 什么是 Redis?B. Redis 的特点和用途C. Python 操作 Redis 的优势 二. 使用 Redis 客户端库A. 安装 Redis 客户端库B...
    99+
    2023-08-31
    redis python
  • python 操作 redis,redi
    python 操作redis 需要导入redis模块import redis """ 连接redis ConnectionPool 方式连接 """ def connRedis(self): ...
    99+
    2023-01-31
    操作 python redi
  • python之操作redis
    # coding:utf8 # 导入模块 import redis # 连接redis库 # r = redis.Redis(host='192.168.10.128',port=6379,db=0) # 主要是为了向后兼容 r = red...
    99+
    2023-01-31
    操作 python redis
  • 【Redis】用python操作redis集群
    https://blog.csdn.net/bitcarmanlee/article/details/51852126  密码不能写到列表中去: 有密...
    99+
    2024-04-02
  • Python操作Redis和Memcac
    MemcachedMemcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...
    99+
    2023-01-31
    操作 Python Memcac
  • python 操作redis集群
    redis集群cd /usr/local/redis3.0/src./redis-trib.rb  create --replicas 1 ip1:7000 ip1:7001cluster info/nodesredis-cli -c -h...
    99+
    2023-01-31
    集群 操作 python
  • Python中怎么操作Redis
    Python中怎么操作Redis,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、字符串 stringsPython操作Redis的redis模块对字符串(string)的...
    99+
    2023-06-16
  • Python操作redis数据库
    前言:这两天的事情不多,为了避免之前学习的一点点Python知识遗忘,我在Github上找了一些小项目跟着实践。之前的工作有写过相关的Python处理redis处理数据的脚本,但之前没有养成记录积累的习惯,所以~~~~(遗忘了),所以趁此...
    99+
    2023-01-31
    操作 数据库 Python
  • 使用python对redis操作
    写在前面首先声明,这是为了学习python对redis操作而写的一个小demo,包括了这几天网站找到的一些资料,综合总结出来一些东西,最后附上我写的一个用python操作redis的一个demo:模块安装python提供了一个模块redis...
    99+
    2023-01-31
    操作 python redis
  • 【Python实践-4】切片操作去除字符
    1 #利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法 2 def trim(s): 3 while s[0:1]==' ': 4 ...
    99+
    2023-01-31
    切片 字符 操作
  • Python访问Redis的详细操作
    目录1.连接2.String字符串3.列表4.集合5.哈希6.有序集合1.连接 测试连接是否成功: import redis r = redis.Redis(host='192....
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作