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