使用redis-py的兩個類Redis和StrictRedis時遇到的坑


使用redis-py的兩個類Redis和StrictRedis時遇到的坑

 

前言:

      今天產品經理說,有幾個隊列排序的功能不能用了。對比了下以前的代碼查到了一個原因,這個比較的坑,總結起來也是自己沒好好看文檔。 

 

     redis-py提供兩個類Redis和StrictRedis用於實現Redis的命令,StrictRedis用於實現大部分官方的命令,並使用官方的語法和命令(比如,SET命令對應與StrictRedis.set方法)。Redis是StrictRedis的子類,用於向后兼容舊版本的redis-py。 簡單說,官方推薦使用StrictRedis方法。 

 

不推薦Redis類,原因是他和咱們在redis-cli操作有些不一樣,主要不一樣是下面這三個方面。 

 

 

·LREM:參數 ‘num’ 和 ‘value’ 的順序交換了一下,cli是 lrem queueName 0 ‘string’ 。  這里的0時所有的意思。 但是Redis這個類,把控制和string調換了。 

·ZADD:實現時 score 和 value 的順序不小心弄反了,后來有人用了,就這樣了

·SETEX: time 和 value 的順序反了

.Pool:   連接池

 

最近爬蟲很是凶猛,標注下文章的原文地址: blog.xiaorui.cc

 

 

再就是連接池,很多人用Redis的原因是,以前的一些個博客的關於python redis的操作,基本用的時Redis的連接池方式。  其實StrictRedis也是支持的。

Redis的連接池的方法:

 

 

 StrictRedis的連接池的實現方式:

 

 

 

 

看下官方的創建redis的時候,都可以添加什么參數。 

 

 

另外的再說下redis的對於有些編碼入庫的問題,redis的連接附加的參數里面,默認編碼是utf-8,但是如果你非要用GBK那就需要指明你的chardet和decode_responses為True 。 

 

 

 

 

 

 

嗯,剩下的就沒什么了 。以后要好好的看文檔哈。

 

更新, 今天又遇到這問題了… 

 

 

很明顯,順序不對…  ResponseError: value is not a valid float  ,字符串跟score反了…

 


對Golang感興趣的朋友可以加群: 278517979 !!!
另外如果大家覺得文章對你有些作用! 如果想賞錢,可以用微信掃描下面的二維碼, 感謝!
另外再次標注博客原地址   xiaorui.cc


免責聲明!

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



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