Redis資料類型:
Redis支援五種基礎資料型別 (Elementary Data Type):string(字串),hash(雜湊),list(列表),set(集合)及zset(有序集合)。
1.string(字串): string類型是Redis最基本的資料類型,一個鍵最大能儲存512MB。
string類型是二進位安全的,可以包含任何資料,比如jpg圖片或者序列化的對象 。
執行個體:
>>> import redis>>> r = redis.Redis()>>> r.set('name', 'xiemanR')True>>> r.get('name')b'xiemanR'>>> 執行個體中鍵為name,值為字串xiemanR。
2.hash(雜湊): hash 是一個鍵名對集合。
hash是一個string類型的key和value的映射表,hash特別適合用於儲存物件。
每個 hash 可以儲存 2 32 -1 索引值對(40多億)。
執行個體:
>>> import redis>>> r = redis.Redis()>>> r.hset('xiemanR', 'age', 18)1>>> r.hget('xiemanR', 'age')b'18'>>> 執行個體中hash的name為xiemanR,key為age,值為18;使用hget擷取鍵age的值。
3.list(列表): list是字串列表,按照插入順序排序。可以在列表的左邊或者右邊添加一個元素。 每個列表最多可儲存 2 32 - 1 元素 (40多億)
執行個體:
>>> import redis>>> r = redis.Redis() >>> r.lpush('lang', 'Python') >>> r.lpush('lang', *['Java', 'Go', 'PHP', 'C++', 'JS']) >>> r.lrange('lang', 0, 3) [b'JS', b'C++', b'PHP', b'Go'] >>>
4.set(集合): set是string類型的無序集合,集合是通過雜湊表實現的,所以添加,刪除,尋找的複雜度都是O(1)。
sadd函數: 添加一個string元素到,key對應的set集合中,成功返回1,如果元素已經在集合中返回0,key對應的set不存在返回錯誤。
smembers函數: 擷取set集合的值。
執行個體:
>>> import redis>>> r = redis.Redis()>>> r.sadd('sql', 'mysql')1>>> r.sadd('sql', 'sqlite')1>>> r.sadd('sql', 'redis')1>>> r.sadd('sql', 'mysql')0>>> r.smembers('sql'){b'sqlite', b'mysql', b'redis'}>>> 執行個體中 mysql添加了兩次,因為集合內元素是唯一的,第二次插入的元素被忽略返回0。
5.zset(有序集合): zset 和 set 一樣也是string類型元素的集合,且不允許重複的成員。
不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。
zset的成員是唯一的,但分數(score)卻可以重複。
zadd函數: 添加元素到集合,元素在集合中存在則更新對應score。
zrangebyscore函數: 擷取通過分數排序的值。
執行個體:
>>> import redis>>> r = redis.Redis()>>> r.zadd('sqltype', 'redis', 0.1)1>>> r.zadd('sqltype', 'mysql', 0.5)1>>> r.zadd('sqltype', 'sqlite', 0.4)1>>> r.zrangebyscore('sqltype', 0, 2)[b'redis', b'sqlite', b'mysql']>>>