Redis散列操作

时间:2021-01-17 01:49:19

Redis的散列可以将多个键值对存储在一个Redis键里面。可以把这种数据聚集看作是数据库中的行或者文档数据库中的文档。

(添加和删除键值对)

HMGET : HMGET key-name key [key ...]-------------从散列里面获取一个或多个键的值

HMSET : HMSET key-name key value [key value ...]------------从散列里面获取一个或多个键的值

HDEL : HDEL key-name key [key ...] ------------------删除散列里面的一个或多个键值对,返回成功删除的键值对数量

HLEN  : HLEN  key-name -------------------------------返回散列包含的键值对数量

>>> import redis
>>> conn = redis.Redis(host='192.168.146.129',port=6379,db=0)
>>>
>>> conn.hmset('hash-key',{'k1':'v1','k2':'v2','k3':'v3'})
True
>>> conn.hmget('hash-key',['k2','k3'])
['v2', 'v3']
>>> conn.hlen('hash-key')
4
>>> conn.hdel('hash-key','k1','k3')
2
>>> conn.hmget('hash-key',['k2','k3'])
['v2', None]
>>> conn.hdel('hash-key','k1','k3')
0

(高级特性)

HEXISTS : HEXITS key-name key ------------------检查给定键是否存在于散列中

HKEYS : HKEYS key-name---------------------------获取散列中包含的所有键

HVALs : HVALS key-name---------------------------获取散列包含的所有值

HGETALL : HGETALL key-name --------------------获取散列包含的所有键值对

HINCRBY : HINCRRBY key-name key increment ---------------将键key存储的值加上整数increment

HINCRBYFLOAT : HINCRBYFLOAT key-name key increment -------------将键key存储的值加上浮点数increment

>>> conn.hmset('hash-key2',{'short':'hello','long':1000*''})
True
>>> conn.zcard('zset-key')
2
>>> conn.hkeys('hash-key2')
['long', 'short']
>>> conn.hexists('hash-key2','num')
False
>>> conn.hincrby('hash-key2','num')
1L
>>> conn.hexists('hash-key2','num')
True
>>> conn.hgetall('hash-key2')
{'short': 'hello', 'num': '', 'long': ''}