import redis
pool=redis.connectionpool(host=『localhost』,port=6379)
conn=redis.redis(connection_pool=pool)
hset(self, name ,key,value)
name對應的hash中設定乙個鍵值對(不存在,則建立;否則,修改)
引數:# name,redis中hash資料的name
# key,name對應的hash中的key
# value,name對應的hash中的value
conn.hset(『student』,『name』,『mm』)
conn.hset(『student』,『age』,『11』)
conn.hset(『student』,『gender』,『f』)
在name對應的hash中獲取根據key獲取value
print(conn.hget(『student』,『age』))
#輸出—> b』11』
在name對應的hash中獲取多個key的值,keys需要放在列表
print(conn.hmget(『student』,[『age』,『gender』]))
#輸出—>[b』11』, b』f』]
獲取name對應的hash所有鍵值對
print(conn.hgetall(『student』))
#輸出—>
print(conn.hgetall(『teacher』))
#輸出—>
獲取name對應的hash中鍵值對的個數
print(conn.hlen(『teacher』))
#輸出—>3
獲取name對應的hash中所有的key的值
print(conn.hkeys(『student』))
#輸出—>[b』name』, b』gender』, b』age』
獲取name對應的hash中所有的value的值
print(conn.hvals(『teacher』))
#輸出—>[b』ww』, b』22』, b』m』]
檢查name對應的hash是否存在當前傳入的key
print(conn.hexists(『teacher』,『age』))
#輸出—>true
print(conn.hexists(『teacher』,『weight』))
#輸出—>false
將name對應的hash中指定key的鍵值對刪除
conn.hdel(『student』,『age』)
print(conn.hgetall(『student』))
#輸出—>
自增name對應的hash中的指定key的值,不存在則建立key=amount
#引數:
# name,redis中的name
# key, hash對應的key
# amount,自增數(整數):key值對應的value值按自贈數依次加法操作
#hincrbyfloat則為自增數為浮點數
conn.hincrby(『teacher』,『age』,1)
print(conn.hget(『teacher』,『age』))
#輸出—>b』23』
conn.hincrbyfloat(『student』,『age』,0.5)
print(conn.hget(『student』,『age』))
#輸出—>b』0.5』
#增量式迭代獲取,對於資料大的資料非常有用,
hscan可以實現分片的獲取資料,並非一次性將資料全部獲取完,從而放置記憶體被撐爆
#引數:
# cursor,游標(基於游標分批取獲取資料)
# match,匹配指定key,預設none 表示所有的key
# count,每次分片最少獲取個數,預設none表示採用redis的預設分片個數
conn.hmset(『docter』,)
print(conn.hscan(『docter』,cursor=0))
#輸出—>(0, )
print(conn.hscan(『docter』,cursor=0,count=5))
#輸出—>(0, )
當name對應的hash中不存在當前key時則建立(相當於新增)
conn.hsetnx(『docter』,『docter』,『mm』)
print(conn.hscan(『docter』,cursor=0,match=『d*』))
#輸出—>(0, )
利用yield封裝hscan建立生成器,實現分批去redis中獲取資料
#引數:
# match,匹配指定key,預設none 表示所有的key
# count,每次分片最少獲取個數,預設none表示採用redis的預設分片個數
print(conn.hscan_iter(『docter』))
#輸出—>
for i in conn.hscan_iter(『docter』):
print(i)
break
#輸出—>(b』westos0』, b』0』)
刪除所有鍵值對
conn.flushall()
print(conn.hkeys(『docter』))
#輸出—>
Redis儲存資料 Hash型別
redis儲存hash型別的資料,就是map裡儲存map 儲存的map的key為欄位名,值為字段值 儲存資料 hset key 欄位名 字段值 127.0.0.1 6379 1 hset user username wlf integer 1 獲取資料hget key 欄位名 127.0.0.1 6...
Redis 雜湊hash 型別
redis hash 是乙個 string 型別的 field 和 value 的對映表,hash 特別適合用於儲存物件 基本語法 設定值 hmset hmset zhangsan name 張三 age 20 男 設定值 hset hset zhangsan name 張三 獲取資料 hgetal...
redis資料型別 Hash型別
hash型別,是乙個string型別的field和value的對映表。hash存放的是鍵值對,可以很方便的存放物件。常用操作 hset 設定hash field為指定值,如果key不存在,則先建立 hset user1 name jack hset uer1 age 18 hget 獲取指定的has...