Python操作Redis的5種數據類型


1.連接redis(兩種方式)

# decode_responses=True: 解決獲取的值類型是bytes字節問題                    
r = redis.Redis(host='localhost', port='6379', db=0, decode_responses=True) 

  

pool = redis.ConnectionPool(host='localhost', port=6379, db=0, decode_responses=True)
r = redis.Redis(connection_pool=pool)

2.字符串類型 String

# ex過期時間 單位秒S
r.set('name', 'Jack', ex=20)
rst = r.get('name')
print(rst)


結果: "Jack"

3.列表類型 list

r.lpush('object', 'one')
r.lpush('object', 'two')
r.lpush('object', 'three')
r.lpush('object', 'four')
r.lpush('object', 'five')
r.lpush('object', 'six')
ret = r.lrange('object', 0, 5)
print(ret[::-1], len(ret))
  
 
結果: ['one', 'two', 'three', 'four', 'five', 'six']  6

4.哈希類型  hash

r.hset('user:info', 'name', 'Jack')
r.hset('user:info', 'age', 20)
r.hset('user:info', 'phone', '18712909999')
r.hset('user:info', 'email', '123@gmail.com')
rst = r.hgetall('user:info')
print(rst)


結果: {'age': '20', 'email': '123@gmail.com', 'name': 'Jack', 'phone': '18712909999'}

5.集合類型  set

r.sadd('set', 'one')
r.sadd('set', 'two')
r.sadd('set', 'three')
res = r.smembers('set')
print(res)


結果: {'two', 'one', 'three'}

6.有序集合類型 sorted set

r.zadd('mark', 'one', 1)
r.zadd('mark', 'two', 2)
r.zadd('mark', 'three', 3)
r.zadd('mark', 'four', 4)
r.zadd('mark', 'five', 5)
result = r.zrange('mark', 0, 10)
print(result)


結果: ['one', 'two', 'three', 'four', 'five']

7. Redis的5種數據類型的使用場景

String

  計數器應用

List

  取最新N個數據的操作

  消息隊列

  刪除與過濾

  實時分析正在發生的情況,用於數據統計與防止垃圾郵件(結合Set)

Set

  Uniqe操作,獲取某段時間所有數據排重值

  實時系統,反垃圾系統

  共同好友、二度好友

  利用唯一性,可以統計訪問網站的所有獨立IP

  好友推薦的時候,根據tag求交集,大於某個threshold就可以推薦

Hashes

  存儲、讀取、修改用戶屬性

Sorted Set

  排行榜應用,取TOP N操作

  需要精准設定過期時間的應用(時間戳作為Score)

  帶有權重的元素,比如一個游戲的用戶得分排行榜

  過期項目處理,按照時間排序


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM