Redis之hash操作

1 hset(name, key, value) 设置值

conn.hset('userinfo','name','xxx')
conn.hset('userinfo','age',18)

 


2 hmset(name, mapping) 批量设置

conn.hmset('userinfo',{'name':'彭于晏','age':19})

 

 

3 hget(name,key)

print(conn.hget('userinfo','name'))

 

 

4 hmget(name, keys, *args) 批量获取

print(conn.hmget('userinfo','hobby','name','age'))
# 另一种设置方式
print(conn.hmget('userinfo',['hobby','name','age']))

 

 

5 hgetall(name) 获取全部(慎用,内存溢出)

res=conn.hgetall('userinfo2')
print(res)

 

 

6 hlen(name) 获取长度

print(conn.hlen('userinfo'))

 

 

7 hkeys(name) 

print(conn.hkeys('userinfo'))

 

 

8 hvals(name)

print(conn.hvals('userinfo'))

 

 

9 hexists(name, key)

print(conn.hexists('userinfo2','hobby1'))

 

 

10 hdel(name,*keys)

res=conn.hdel('userinfo','hobby')
print(res)

 

 

11 hincrby(name, key, amount=1) 增加

conn.hincrby('userinfo','age')

 

 

12 hincrbyfloat(name, key, amount=1.0)

conn.hincrbyfloat('userinfo2', 'age', amount=1.2)

 

 

13 hscan(name, cursor=0, match=None, count=None)

# 一点点取值 ---》hscan一般不单独用
# 造数据
for i in range(1000):
conn.hset('map_demo',i,'鸡蛋_%s'%i)

 

# 一次性取出来
res=conn.hgetall("map_demo")
print(res)

# 一点点取---》取的数量不准确(上下相差一点点),下次取值取决于上次的结果---》不单独使用
res=conn.hscan('map_demo',cursor=0,count=20)
print(res) # (数字,{数据})
print(len(res[1]))

res=conn.hscan('map_demo',cursor=320,count=10)
print(res) # (数字,{数据})

conn.hscan('map_demo')

 

 

14 hscan_iter(name, match=None, count=None)

# 取出所有数据等同于 hgetall,但是是一点点取(count的值),一点点用
# 内部是生成器
res=conn.hscan_iter('map_demo',count=10) # 这个数字并不是取10条,而是 每次取10条,把所有都取尽
print(res) # generator
for item in res:
print(item)

# 内部具体如何实现---》内部使用了hscan
res=conn.hscan_iter('map_demo',count=10)
# 内部通过调用 hscan实现 每次取10条,用完再继续取10条,直到所有数据都取完

 

 

汇总:

'''
1 hset(name, key, value)
2 hmset(name, mapping)
3 hget(name,key)
4 hmget(name, keys, *args)
5 hgetall(name)
6 hlen(name)
7 hkeys(name)
8 hvals(name)
9 hexists(name, key)
10 hdel(name,*keys)
11 hincrby(name, key, amount=1)
12 hincrbyfloat(name, key, amount=1.0)
13 hscan(name, cursor=0, match=None, count=None)
14 hscan_iter(name, match=None, count=None)
'''

 

posted @ 2024-01-28 20:55  wellplayed  阅读(23)  评论(0编辑  收藏  举报