Redis在内存中存储hash类型是以name对应一个字典形式存储的

常用操作

在name对应的hash中获取根据key获取value
hget(name,key)

在name 对应的hash 中设备键值对
hset(name, key, value)

在name对应的hash中批量设置键值对
hmset(name, mapping)

在name对应的hash中获取多个key的值
hmget(name, keys, *args)

获取name对应hash的所有键值
hgetall(name)

获取name对应的hash中键值的个数
hlen(name)

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

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

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

将name对应的hash中指定key的键值对删除
hdel(name, *keys)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time   :
# @Author :
# @File   : hash.py
import redis

redis_info = {
    'host': '11.11.11.11',
    'port': 6379
}

def conncet_redis():
    pool = redis.ConnectionPool(**redis_info)
    try:
        r = redis.Redis(connection_pool=pool)
    except Exception as err:
        raise err
    return r

r = conncet_redis()

r.hset('hash1', 'test1', 'val_1')
print(r.hget('hash1', 'test1'))
# val_1

r.hmset('hash1',{'k2':'v2', 'k3':'v3'})
print(r.hmget('hash1', ['k2', 'k3', 'test1']))
# ['v2', 'v3', 'val_1']

print(r.hgetall('hash1'))
# {'test1': 'val_1', 'k3': 'v3', 'kl': 'v1', 'k_l': 'valu', 'k2': 'v2'}
print(r.hlen('hash1'))

print(r.hkeys('hash1'))
# ['test1', 'k3', 'k2', 'kl', 'k_l']
print(r.hvals('hash1'))
# ['val_1', 'v3', 'v2', 'v1', 'valu']
print(r.hexists('hash1', 'test1'))
# True
print(r.hexists('hash1', 'test2'))
# False
print(r.hdel('hash1', 'k1'))

print(r.hgetall('hash1'))
# {'test1': 'val_1', 'k3': 'v3', 'k2': 'v2'}
print(r.hlen('hash1'))

 

其它操作

根据name删除redis中的任意数据类型
delete(*names)

检测redis的name是否存在
exists(name)

根据* ?等通配符匹配获取redis的name
keys(pattern='*')

为某个name设置超时时间
expire(name ,time)

重命名
rename(src, dst)

将redis的某个值移动到指定的db下
move(name, db))

获取name对应值的类型
type(name)

_keys = r.keys()
print(_keys)
# ['set_2', 'set_tmp', 'set_3', 'set_name', 'hash1']
r.delete('set_2')
_keys = r.keys()
print(_keys)
# ['set_tmp', 'set_3', 'set_name', 'hash1']

print(r.keys(pattern= 'set_2'))
# []

r.move('hash1', 1)
# [root@Node1 src]# ./redis-cli
# 127.0.0.1:6379> keys *
# 1) "set_tmp"
# 2) "set_3"
# 3) "set_name"
# 127.0.0.1:6379> select 1
# OK
# 127.0.0.1:6379[1]> keys *
# 1) "hash1"
# 127.0.0.1:6379[1]>

r.rename('set_now','set_tmp')
_keys = r.keys()
print(_keys)
r.rename('set_tmp', 'set_now')
_keys = r.keys()
print(_keys)
# ['set_tmp', 'set_3', 'set_name', 'hash1']
# ['set_now', 'set_3', 'set_name', 'hash1']

 

python - hash类型操作的更多相关文章

  1. Redis - hash类型操作

    hash 类型操作设置操作:hset:    hset key filed value        创建指定key的filed-value名值对 hsetnx:    hsetnx key file ...

  2. Redis之Hash类型操作

    接口IRedisDaoHash: package com.net.test.redis.base.dao; import com.net.test.redis.base.entity.UserPsg; ...

  3. Python基本类型操作

    # str = "2017.1.1.wmv" # #print(str[str.rfind('.'):]) # #print(str.count(".")) # ...

  4. Redis hash 类型及操作

    原文:http://blog.sina.com.cn/s/blog_5f044a4d0102v01k.html Redis hash是一个string类型的field和value的映射表.它的添加.删 ...

  5. Redis学习第三课:Redis Hash类型及操作

    Redis hash是一个string类型的field和value的映射表.它的添加.删除操作都是O(1)(平均).hash特别适用于存储对象.相较于对象的每个字段存在单个string类型.将一个对象 ...

  6. redis的Hash类型以及其操作

    hashes类型 hashes类型及操作Redis hash是一个string类型的field和value的映射表.它的添加.删除操作都是0(1)(平均).hash特别适合用于存储对象.相较于将对象的 ...

  7. 第二课补充01——redis-cli命令行详解、string类型、list类型、hash类型命令操作详解

    一. redis-cli命令行参数 1.-x参数:从标准输入读取一个参数: [问题] [解决] 因为echo命令是默认带有回车\n的,不带回车需要echo –n命令: echo -n "ha ...

  8. Python列表类型及常用操作

    Python列表类型 1.用途: 存放多个值,可以根据索引存取值 2.定义方式: 在[ ]内用逗号分割开多个任意类型的值 l=['yven','law','lyf'] #l=list(['yven', ...

  9. 二:redis 的hash类型相关操作

    =====================二种:hash类型================== 介绍:redis -> hash是一个string类型的field和value的映射表 hash ...

随机推荐

  1. Android开发技巧——自定义控件之自定义属性

    Android开发技巧--自定义控件之自定义属性 掌握自定义控件是很重要的,因为通过自定义控件,能够:解决UI问题,优化布局性能,简化布局代码. 上一篇讲了如何通过xml把几个控件组织起来,并继承某个 ...

  2. HashMap是无序的

    一. 说明 HashMap是基于哈希表Map的实现.设计初衷主要是为了解决键值(key-value)对应关联的,HashMap的优势是可以很快的根据键(key)找到该键对应的值(value),但是我们 ...

  3. java--字符编码,正则表达式

    转载请申明出处:http://blog.csdn.net/xmxkf day21   字符编码 06-IO流(转换流的字符编码) 字符编码: 1. 字符流的出现为了方便操作字符,更重要的是加入了编码转 ...

  4. 双系统或三系统:Grub Rescue修复方法

    我是在装三系统的时候(1.WIN 7 ,2.Ubuntu 12.04 ,3.CentOS 6.4 ),中间步骤出错,造成引导区覆盖,grub乱掉了. 症状: 开机显示:GRUB loading err ...

  5. Open Source BI Platform List

    资源入口: awesome-business-intelligence https://github.com/thenaturalist/awesome-business-intelligence h ...

  6. win7 64位专业版下的x64编译问题

    在Django的开发过程中,碰到一个问题,就是所有本地库的位数必须是相同的,于是某些库需要重新编译一下,工作环境,不能用盗版程序,VC++ 2008\2010 Express版本身都不支持X64的编译 ...

  7. ecshop 修改记录20150710

    ecshop 修改记录20150710 1:去掉头部TITLE部分的ECSHOP演示站 Powered by ecshop 前台部分:在后台商店设置 - 商店标题修改 后者打开includes/lib ...

  8. Ocelot中文文档-服务发现

    Ocelot允许您指定服务发现提供程序,并使用它来查找Ocelot正在将请求转发给下游服务的主机和端口.目前,这仅在GlobalConfiguration部分中受支持,这意味着所有ReRoute将使用 ...

  9. 印钞机 V1.0(量化选基总结)

    今年的元旦,在家把之前手工的选基方法完全程序化了.这是我的"印钞机" V1.0. 为什么叫印钞机,详细情况可见下文及最后的总结. 量化选基成果 我的主要基金投资方法其实就是量化选基 ...

  10. 强大的代码编辑器 phpstorm version 2016.2 License Server激活

    "磨刀不误砍柴工","工欲善其事必先利其器",找个一个好的代码开发编辑工具可以让我们事半功倍,并且代码质量得到保障,在这里就推荐一款强大的代码编辑器,不对其实可 ...