redis的hash和常用操作

2021-08-12 00:24:34 字數 3322 閱讀 3196

redis在記憶體中儲存hash型別是以name對應乙個字典形式儲存的

hset(name,key,value)

name對應的hash中設定乙個鍵值對(不存在,則建立;否則,修改)

引數:

#name:redis的name

#key:key1對應的hash中的key

#value:value1對應的hash中的value

注:hsetx(name,key,value),當name對應的hash中不存在當前key則建立(相當於新增)

hget(name,key)

在name對應的hash中批量設定鍵值對

例:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import redis

pool = redis.connectionpool(host='192.168.10.128',port=6379)

r = redis.redis(connection_pool=pool)

r.hmset('test',)

print(r.hmget('test','k1','k2'))

結果

[b』v1』, b』v2』]

hmget(name,keys,*args)

在name對應的hash中獲取多個key的值

引數:

#name:redis對應的name

#keys:要獲取key的集合,如:[『k1』,』k2』,』k3』]

#*args:要獲取的key,如:k1,k2,k3

例:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import redis

pool = redis.connectionpool(host='192.168.10.128',port=6379)

r = redis.redis(connection_pool=pool)

r.hmset('test',)

print(r.hmget('test','k1','k2')) #獲取多個值

hgetall(name):獲取name對應hash的所有鍵值

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import redis

pool = redis.connectionpool(host='192.168.10.128',port=6379)

r = redis.redis(connection_pool=pool)

r.hmset('test',)

print(r.hgetall('test'))

結果:

hlen(name):獲取name對應的hash中鍵值的個數

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import redis

pool = redis.connectionpool(host='192.168.10.128',port=6379)

r = redis.redis(connection_pool=pool)

r.hmset('test',)

print(r.hlen('test'))

結果:

2 hkeys(name):獲取name對應的hash中所有的key的值

hvals(name):獲取name對應的hash中所有的value的值

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import redis

pool = redis.connectionpool(host='192.168.10.128',port=6379)

r = redis.redis(connection_pool=pool)

r.hmset('test',)

print(r.hkeys('test'))

print(r.hvals('test'))

結果:

[b』k2』, b』k1』]

[b』v2』, b』v1』]

hexists(name,key):檢查name對應的hash是否存在當前傳入的key

hdel(name,*keys):將name對應的hash中指定key的鍵值對刪除

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import redis

pool = redis.connectionpool(host='192.168.10.128',port=6379)

r = redis.redis(connection_pool=pool)

r.hmset('test',)

print(r.exists('test'))

print(r.hdel('test','k1'))

print(r.hmget('test','k1','k2'))

結果:

true

1

delete(*names)

根據name刪除redis中的任意資料型別

exists(name)

檢測redis的name是否存在

keys(pattern=』*』)

根據* ?等萬用字元匹配獲取redis的name

expire(name ,time)

為某個name設定超時時間

rename(src, dst)

重新命名

move(name, db))

將redis的某個值移動到指定的db下

type(name)

獲取name對應值的型別

Redis中Hash型別的常用操作

官方的介紹 hash型別是每個key對應乙個hashtable.適合用於儲存物件。但在redi底層中新建hash物件的時候使用了zipmap儲存,當字段和值大小超過配置值的時候替換成正常的 hashtable.在配置檔案,window下是redis.windows.conf搜尋 hash max z...

redis 的無序集合和hash操作

1 往集合新增資料 2 檢視集合所有元素 3 集合刪除操作 4 返回並刪除集合key中乙個隨機的元素 體現集合無序性 5 返回集合中乙個隨機的元素 6 判斷value是否在集合key中,存在返回1 不存在返回0 7 返回集合中的個數 8 把source 中的value 刪除,移動到desc集合中去 ...

redis資料操作 hash

hash 用於儲存物件,物件的格式為鍵值對 json格式 hset key 鍵名 field 屬性 value 屬性值 例如儲存 name 為屬性 field 張三為屬性值 value 設定命令 127.0.0.1 6379 hset ht1 name 張三 hmset key field valu...