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 ...
随机推荐
- 操作json数据
删除: delete json[key] 把json字符串转成jsonObject : eval(+'('+json+')'+) 把jsonObject 转换成json字符串 :json.toJSON ...
- Java IO学习--(三)通道
Java IO中的管道为运行在同一个JVM中的两个线程提供了通信的能力.所以管道也可以作为数据源以及目标媒介. 你不能利用管道与不同的JVM中的线程通信(不同的进程).在概念上,Java的管道不同于U ...
- 万水千山ABP - 系统发布后迁移 CodeFirst 数据库[原创]
在项目开发的过程中,常会遇到项目发布后还变更数据库的情况.这时如何方便地进行数据库迁移呢 ? 下面直接列出操作的步骤: 1. 发布修改后的应用: 将最新版本的应用更新到目标机器中.更新的文件当然不包括 ...
- 用eclipse运行和部署myeclipse项目
版本:Eclipse-jee-indigo(3.7) 配置Project Facets 点击项目选择 properties -->Project Facets--> Dynamic Web ...
- PLSQL学习教程(全)
基于ORACLE9i+PL/SQLDeveloper7.1.4) 课程 一 PL/SQL 基本查询与排序 本课重点: 1.写SELECT语句进行数据库查询 2.进行数学运算 3.处理空值 4.使用别名 ...
- RocketMQ源码 — 七、 RocketMQ高可用(2)
上一篇说明了RocketMQ怎么支持broker集群的,这里接着说RocketMQ实现高可用的手段之一--冗余. RocketMQ部署的时候一个broker set会有一个mater和一个或者多个sl ...
- Git的fast forward和no fast forward和 three way merge 以及squash(聚合)
github上上传了版本库https://github.com/ChuckGitMerge 包括merge和rebase 没时间画图,貌似也不太会用画图工具,先写了一个文字版本的 更新:2015年 ...
- H5之postMessage 。实现跨域
对于跨域我们有很多的解决方案,今天我来分享一下postMessage的那点事,postMessage是html5新增的一个解决跨域的一个方法,不过很可惜万恶的ie6,7不支持 postMessage( ...
- 【.NET Core】ASP.NET Core之IdentityServer4(1):快速入门
[.NET Core]ASP.NET Core之IdentityServer4 本文中的IdentityServer4基于上节的jenkins 进行docker自动化部署. 使用了MariaDB,EF ...
- C#更改操作系统时间
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServi ...