python - hash类型操作
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类型操作的更多相关文章
- Redis - hash类型操作
hash 类型操作设置操作:hset: hset key filed value 创建指定key的filed-value名值对 hsetnx: hsetnx key file ...
- Redis之Hash类型操作
接口IRedisDaoHash: package com.net.test.redis.base.dao; import com.net.test.redis.base.entity.UserPsg; ...
- Python基本类型操作
# str = "2017.1.1.wmv" # #print(str[str.rfind('.'):]) # #print(str.count(".")) # ...
- Redis hash 类型及操作
原文:http://blog.sina.com.cn/s/blog_5f044a4d0102v01k.html Redis hash是一个string类型的field和value的映射表.它的添加.删 ...
- Redis学习第三课:Redis Hash类型及操作
Redis hash是一个string类型的field和value的映射表.它的添加.删除操作都是O(1)(平均).hash特别适用于存储对象.相较于对象的每个字段存在单个string类型.将一个对象 ...
- redis的Hash类型以及其操作
hashes类型 hashes类型及操作Redis hash是一个string类型的field和value的映射表.它的添加.删除操作都是0(1)(平均).hash特别适合用于存储对象.相较于将对象的 ...
- 第二课补充01——redis-cli命令行详解、string类型、list类型、hash类型命令操作详解
一. redis-cli命令行参数 1.-x参数:从标准输入读取一个参数: [问题] [解决] 因为echo命令是默认带有回车\n的,不带回车需要echo –n命令: echo -n "ha ...
- Python列表类型及常用操作
Python列表类型 1.用途: 存放多个值,可以根据索引存取值 2.定义方式: 在[ ]内用逗号分割开多个任意类型的值 l=['yven','law','lyf'] #l=list(['yven', ...
- 二:redis 的hash类型相关操作
=====================二种:hash类型================== 介绍:redis -> hash是一个string类型的field和value的映射表 hash ...
随机推荐
- android.os.NetworkOnMainThreadException异常如何解决
android.os.NetworkOnMainThreadException 08-08 17:53:30.635 I/ArticleTable(22461): 添加成功 58 08-08 17:5 ...
- SharePoint 2007 列表页定制--4个默认页定制
以"简单的领导简介"为例,欢迎大家指正 背景:项目中需要有领导简介的模块,就开始制作领导简介,本来很简单,有一个列表就可以,然后在前台展示出来,但是客户看到我们的效果,尤其输入领导 ...
- 如何在ubuntu开启ssh服务-使 SecureCRT远程登录
不少人在第一次使用ubuntu系统的时候,用了很多种方法均没有办法开启SSH服务,ubuntu和其它的linux系统有所区别,因为在ubuntu下,service sshd restart 之类 ...
- [Zabbix3.0 ]添加Nginx监控
通过Nginx的http_stub_status_module模块提供的状态信息来监控,所以在Agent端需要配置Nginx状态获取的脚本,和添加key信息等,然后在Server端配置Nginx的监控 ...
- javascript语言扩展:可迭代对象(3)
除了前2篇文章中描述的可迭代对象以外,在js语言扩展中的生成器对象,也可以作为可迭代对象. 这里用到一个新的关键字yield,该关键字在函数内部使用,用法和return类似,返回函数中的一个值:yie ...
- rails常用命令备忘
rails new xxx 创建一个新rails项目 rails generate scaffold xxx 创建表模型,视图,控制器和迁移的"脚手架" rake db:migra ...
- C# /VB.NET 插入、修改、删除Word批注
批注内容可以是对某段文字或内容的注释,也可以是对文段中心思想的概括提要,或者是对文章内容的评判.疑问,以及在阅读时给自己或他人起到提示作用.本篇文章中将介绍如何在C#中操作Word批注,主要包含以下要 ...
- Python_linux环境变量和软链接(个人理解)
--------------------------------------- 最近在服务器上想运行个脚本,装了个python3.6,但是他还自带了个2.7版本,后来发现上面还有3.5版本的pytho ...
- 使用nginx sticky实现基于cookie的负载均衡
在多台后台服务器的环境下,我们为了确保一个客户只和一台服务器通信,我们势必使用长连接.使用什么方式来实现这种连接呢,常见的有使用nginx自带的ip_hash来做,我想这绝对不是一个好的办法,如果前端 ...
- CentOs 6 或 7 yum安装JDK1.8 (内含报 PYCURL ERROR 6 - "Couldn't resolve host 'mirrors.163.com'"错误解决方案)并分析为什么不能yum安装
查看JDK的安装路径 # java -version============================查看Linux系统版本信息# cat /etc/redhat-releaseCentOS r ...