python - hash类型操作

python

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 : 2017/12/5 22:01

# @Author : lijunjiang

# @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'))

# 5

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'))

# 1

print(r.hgetall('hash1'))

# {'test1': 'val_1', 'k3': 'v3', 'k2': 'v2'}

print(r.hlen('hash1'))

# 3

#########

C:\Python27\python.exe D:/Python/redis/hash.py

val_1

['v2', 'v3', 'val_1']

{'test1': 'val_1', 'k3': 'v3', 'k2': 'v2'}

3

['test1', 'k3', 'k2']

['val_1', 'v3', 'v2']

True

False

0

{'test1': 'val_1', 'k3': 'v3', 'k2': 'v2'}

3

Process finished with exit code 0

其它操作

  • 根据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类型操作 的全部内容, 来源链接: utcz.com/z/387764.html

回到顶部