redis.Redis與redis.StrictRedis區別


redis.Redis與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:連接池
Redis的連接池的方法:
pool = redis.ConnectionPool(host=‘localhost’, port=6379, db=0)

r = redis.Redis(connection_pool=pool)

StrictRedis的連接池的實現方式:
In [4]: pool = redis.ConnectionPool(host=‘127.0.0.1’, port=6379)

In [5]: r = redis.StrictRedis(connection_pool=pool)

官方的創建redis的時候,都可以添加什么參數。
class redis.StrictRedis(host=‘localhost’, port=6379, db=0, password=None, socket_timeout=None, connection_pool=None, charset=‘utf-8’, errors=‘strict’, decode_responses=False, unix_socket_path=None)

Implementation of the Redis protocol.

This abstract class provides a Python interface to all Redis commands and an implementation of the Redis protocol.

Connection and Pipeline derive from this, implementing how the commands are sent and received to the Redis server

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


免責聲明!

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



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