緩存服務:mongodb、redis、memcache
- mongodb:早期的緩存系統,直接持久話,數據即存內存也同步到硬盤。
- redis:主流緩存系統,半持久化,默認存在內存,需要手動調用存在硬盤,可通過需求配置。
- memcache:輕量級緩存服務,只能存在內存,不能持久化。
Redis介紹
Redis是單線程通過異步epoll實現高並發。最高讀寫速度(每秒/讀8W數據)。
Redis 默認有16個db 相當與16張表避免有相同的key沖突。
redis是業界主流的key-value nosql 數據庫之一。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
Redis優點
- 異常快速 : Redis是非常快的,每秒可以執行大約110000設置操作,81000個/每秒的讀取操作。
- 支持豐富的數據類型 : Redis支持最大多數開發人員已經知道如列表,集合,可排序集合,哈希等數據類型。
- 這使得在應用中很容易解決的各種問題,因為我們知道哪些問題處理使用哪種數據類型更好解決。
- 操作都是原子的 : 所有 Redis 的操作都是原子,從而確保當兩個客戶同時訪問 Redis 服務器得到的是更新后的值(最新值)。
- MultiUtility工具:Redis是一個多功能實用工具,可以在很多如:緩存,消息傳遞隊列中使用(Redis原生支持發布/訂閱),在應用程序中,如:Web應用程序會話,網站頁面點擊數等任何短暫的數據;
Linux Redis安裝
終端:tar -xvf 包名 #解壓
終端:cd redis-3.0.6 #進入目錄
終端:make #編譯安裝
- 啟動服務端
- 安裝目錄下:src/redis-server
- 啟動客戶端
- 安裝目錄下:src/redis-cli
Python安裝redis
3.0內涉及到socket統一都是bays類型
安裝redis模塊
sudo pip install redis or sudo easy_install redis or
操作模式
1.python鏈接redis
redis-py提供兩個類Redis和StrictRedis用於實現Redis的命令,StrictRedis用於實現大部分官方的命令,並使用官方的語法和命令,Redis是StrictRedis的子類,用於向后兼容舊版本的redis-py。
import redis
# 創建實例對象,獲取服務端IP地址 r = redis.Redis(host='192.168.1.150', port=6379) # 加入keys 與 value r.set('foo', 'Bar') # 打印foo value print(r.get('foo'))
2.鏈接池
不斷的向redis內取數據,不斷的鏈接建立socket資源消耗很大,可以使用連接池來。
redis-py使用connection pool來管理對一個redis server的所有連接,避免每次建立、釋放連接的開銷。默認,每個Redis實例都會維護一個自己的連接池。可以直接建立一個連接池,然后作為參數Redis,這樣就可以實現多個Redis實例共享一個連接池。
import redis
# 創建連接池實例對象,獲取服務端IP地址 pool = redis.ConnectionPool(host='192.168.1.150', port=6379) # 鏈接連接池 r = redis.Redis(connection_pool=pool)
# 加入keys與value r.set('foo', 'Bar')
# 打印value值 print(r.get('foo'))
memcache學習:http://www.cnblogs.com/wupeiqi/articles/5132791.html