Redis的Python客戶端redis-py


1. 安裝

1. redis-py
a. 使用easy_install
1
sudo easy_install redis
 b. 源碼安裝
1
2
3
cd redis-py
python setup.py install
2. Parser安裝
Parser可以控制如何解析redis響應的內容。redis-py包含兩個Parser類,PythonParser和HiredisParser。默認,如果已經安裝了hiredis模塊,redis-py會使用HiredisParser,否則會使用PythonParser。
HiredisParser是C編寫的,由redis核心團隊維護,性能要比PythonParser提高10倍以上,所以推薦使用。安裝方法,使用easy_install:
1
easy_install hiredis

2. 使用

redis-py提供兩個類Redis和StrictRedis用於實現Redis的命令,StrictRedis用於實現大部分官方的命令,並使用官方的語法和命令(比如,SET命令對應與StrictRedis.set方法)。Redis是StrictRedis的子類,用於向后兼容舊版本的redis-py。
1
2
3
4
5
6
7
import redis
 
r = redis.StrictRedis(host = '127.0.0.1' , port = 9212 )
r. set ( 'foo' , 'hello' )
r.rpush( 'mylist' , 'one' )
print r.get( 'foo' )
print r.rpop( 'mylist' )
redis-py使用connection pool來管理對一個redis server的所有連接,避免每次建立、釋放連接的開銷。默認,每個Redis實例都會維護一個自己的連接池。可以直接建立一個連接池,然后作為參數Redis,這樣就可以實現多個Redis實例共享一個連接池。
1
2
3
4
5
6
7
8
import redis
 
pool = redis.ConnectionPool(host = '127.0.0.1' , port = 9212 )
r = redis.Redis(connection_pool = pool)
r. set ( 'one' , 'first' )
r. set ( 'two' , 'second' )
print r.get( 'one' )
print r.get( 'two' )
redis pipeline機制,可以在一次請求中執行多個命令,這樣避免了多次的往返時延。
1
2
3
4
5
6
7
8
9
10
import redis
 
pool = redis.ConnectionPool(host = '127.0.0.1' , port = 9212 )
r = redis.Redis(connection_pool = pool)
pipe = r.pipeline()
pipe. set ( 'one' , 'first' )
pipe. set ( 'two' , 'second' )
pipe.execute()
 
pipe. set ( 'one' . 'first' ).rpush( 'list' , 'hello' ).rpush( 'list' , 'world' ).execute()
redis-py默認在一次pipeline中的操作是原子的,要改變這種方式,可以傳入transaction=False,
1
pipe = r.pipeline(transaction = False )


免責聲明!

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



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