法一(不推薦!)
redis中創建的list如果為空,那么該list的key就不存在了,假如你的list的鍵叫key1,那么可以用
1 import redis 2 r = redis.Redis(host='127.0.0.1', port=6379) 3 if key1.encode() in r.keys(): #如果list存在 4 print('list不為空') 5 else: 6 print('list為空')
因為r.keys()獲取到的鍵值全是二進制的,所以判斷key1是否在全部鍵值里面的時候,需要先用encode()轉為二進制
上面這種方式顯然是不建議使用的,因為r.keys()會獲取當前這個數據庫中所有的鍵,然后去比較,十分耗費cpu資源,所以
法二:
1 import redis 2 r = redis.Redis(host='127.0.0.1', port=6379) 3 list1 = r.lrange('key1',0,-1) # 0到-1表示 取所有元素 4 # 如果key1不存在的話, list1 = [] 5 if len(list1) <= 0: 6 print('key1不存在!') 7 else: 8 print('key1存在!')
同理,判斷一個存儲string的key存不存在 判斷 是否等於None,
如:
1 str = r.get('key1') 2 if str is None: 3 print('key1不存在!') 4 else: 5 print('key1存在!')
其他的均可以用len()函數 取其長度,判斷是否為0!
set類型 a = r.smembers('key1') if len(a) == 0 : # 不存在 else: # 存在
zset類型 a = r.zrange('key1', 0, -1) if len(a) == 0: # 不存在 else: # 存在