pip install redis 五大數據類型使用 String類型 List類型 Hash類型 Set類型 Zset類型 全局key操作 ...
pip install redis
import redis
# 連接redis
# 幾個常用預設參數:
# host='localhost', port=6379, db=0, decode_responses=False, password=None
con_redis = redis.StrictRedis(decode_responses=True)
五大數據類型使用
String類型
# 增加數據:set key value(如果key存在,則修改為新的value)
print(con_redis.set('str_type', 'str_value')) # 列印True
# 追加數據:append key value
print(con_redis.append('str_type', '_new')) # 列印13,字元長度
# 查看數據:get key
print(con_redis.get('str_type'))
List類型
# 在插入數據時,如果該鍵並不存在,Redis將為該鍵創建一個
# 在末尾添加數據(列表右邊)
con_redis.rpush('list_type', '2', 'xy', 'li_val_end')
# 在頭部添加數據(列表左邊)
con_redis.lpush('list_type', '1', 'xy', 'li_val_start')
# 查看數據
# 數據為:['li_val_start', 'xy', '1', '2', 'xy', 'li_val_end']
# 下標範圍:lrange key start stop
print(con_redis.lrange('list_type', 0, 10))
# 指定下標:lindex key index
print(con_redis.lindex('list_type', -1))
# 刪除數據
# 從末尾刪除(列表右邊):rpop key
print(con_redis.rpop('list_type')) # 列印刪除的值
# 從頭部刪除(列表左邊):lpop key
print(con_redis.lpop('list_type')) # 列印刪除的值
# 指定值刪除:lrem key count(可以存在多個重覆的值,指定value刪除的次數) value
print(con_redis.lrem('list_type', 2, 'xy')) # 列印成功刪除的個數
Hash類型
# hash類型的值是一個鍵值對集合,如:h_test : { field1:value1, field2:value2,...}
# 添加數據:hset key field value
print(con_redis.hset('hash_type', 'filed', 'value')) # 列印成功添加數據的條數
# 查看域值:hget key field
print(con_redis.hget('hash_type', 'filed'))
# 查看所有的field:hkeys key
print(con_redis.hkeys('hash_type'))
# 查看所有的value:hvals key
print(con_redis.hvals('hash_type'))
# 查看所有的鍵值對:hgetall key
print(con_redis.hgetall('hash_type'))
Set類型
# Set類型為無序的字元集合,元素具有唯一性, 不重覆(自動去重)
# 添加數據:sadd key member1 [member2 ...]
print(con_redis.sadd('set_type', 'va', 'vb', 'vc', 'vd')) # 列印成功添加數據的條數
# 查看數據:smembers key
print(con_redis.smembers('set_type'))
# 隨機刪除:spop key
print(con_redis.spop('set_type')) # 列印刪除的值
# 指定刪除:srem key member1 [member2 ...]
print(con_redis.srem('set_type', 'va', 'vb')) # 列印成功刪除的個數
Zset類型
# 每一個成員都會有一個分數(score)與之關聯
# 成員是唯一的,但是分數(score)卻是可以重覆的
# 比如把一個班級的學生分成幾組
# 添加數據: zadd key score member [score2 member2 …]
# 列印成功添加數據的條數
print(con_redis.zadd('zset_type',
1, 'val1', 1, 'val2', 1, 'val3',
4, 'val4', 4, 'val5',
8, 'val6'
))
# 查看數據
# 根據索引:zrange key start stop
print(con_redis.zrange('zset_type', 0, 3))
# 根據score:zrangebyscore key min max
# 查看 score 1 到 2 的值
print(con_redis.zrangebyscore('zset_type', 1, 2))
# 刪除數據
# 根據值:zrem key member [member …]
print(con_redis.zrem('zset_type', 'val3', 'val4')) # 列印成功刪除的個數
# 根據索引:zremrangebyrank key start stop
print(con_redis.zremrangebyrank('zset_type', 2, 4)) # 列印成功刪除的個數
# 根據score:zremrangebyscore key min max
print(con_redis.zremrangebyscore('zset_type', 1, 7)) # 列印成功刪除的個數
全局key操作
# 查看所有的key:keys *
print(con_redis.keys())
# 查看key的類型:type key
print(con_redis.type('set_type'))
# exists key 查看key是否存在
print(con_redis.exists('abcd')) # 不存在返回False
# 改名:rename key new_key
# 如果不存在則報錯:no such key
# print(con_redis.rename('str_type', 'str_type_new'))
# 刪除鍵值對:del key [key2 key3 ...]
print(con_redis.delete('hash_type')) # 列印成功刪除的個數
# 設置過期時間:expire key seconds
print(con_redis.expire('list_type', 60)) # 返回bool
# persist key 刪除過期時間
print(con_redis.persist('list_type'))# 返回bool
# ttl key 查看時間
# -1:沒設置過期時間 -2:不存在這個鍵
print(con_redis.ttl('list_type'))