Python對Redis進行實時用戶數統計
安裝redis
#wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz
#tar xzf redis-2.6.14.tar.gz
#cd redis-2.6.14
#make
執行make的時候報錯,具體報錯信息如下:
zmalloc.o: In function `zmalloc_used_memory':
/usr/local/redis-2.6.14/src/zmalloc.c:223: undefined reference to `__sync_add_and_fetch_4'
collect2: ld returned 1 exit status
make[1]: *** [redis-server] Error 1
make[1]: Leaving directory `/usr/local/redis-2.6.14/src
在make操作的時候加一個執行參數:makeCFLAGS="-march=i686"
然後就不報錯了。
編譯的可執行文件在src目錄中,啟動運行Redis:
# src/redis-server
如圖正確啟動後,安裝redis-py
git clone https://github.com/andymccurdy/redis-py.git
cd redis-py
python setup.py install
python操作在線用戶數的簡單代碼:
#!/usr/bin/python
import redis
r=redis.StrictRedis(host='192.168.39.138',port=6379)
r.set('online','0')
r.incr('online')
r.incr('online')
r.incr('online')
r.decr('online')
print r.get('online')
如果有新的用戶登錄incr插入一條記錄,如果有用戶下線可以使用decr或者規定一個超時時間,對不活躍的用戶自動刪除記錄。
#./redis.py
2
模式測試,當前有三個用戶登錄變為在線,同時一個用戶離線,所以顯示在線用戶為2人,實時性更高。