pythonredis集群
⑴ redis集群,有一個伺服器和另一個伺服器是怎樣均衡負載的
Redis 是一個高性能的key-value資料庫。 redis的出現,很大程度補償了memcached這類keyvalue存儲的不足,在部 分場合可以對關系資料庫起到很好的補充作用。
它提供了python,Ruby,Erlang,PHP客戶端,使用很方便。
性能測試結果:
SET操作每秒鍾 110000 次,GET操作每秒鍾 81000 次,伺服器配置如下:
Linux 2.6, Xeon X3320 2.5Ghz.
stackoverflow 網站使用 Redis 做為緩存伺服器。
⑵ 怎麼指定redis集群節點的主從關系
市面上太多kv的緩存,最常用的就屬memcache了,但是memcache存在單點問題,不過小日本有復製版本,但是使用的人比較少,redis的出現讓kv內存存儲的想法成為現實。今天主要內容便是redis主從實現簡單的集群,實際上redis的安裝配置砸門ttlsa之前就有個文章,廢話少說,進入正題吧
Redis簡介
redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字元串)、 list(鏈表)、set(集合)和zset(有序集合)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操 作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的 是redis會周期性的把更新的數據寫入磁碟或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
Redis 是一個高性能的key-value資料庫。 redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部 分場合可以對關系資料庫起到很好的補充作用。它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便。
1. 下載軟體包
# cd /usr/local/src/
# wget http://redis.googlecode.com/files/redis-2.6.11.tar.gz
2. Redis安裝
主從都需要安裝
# tar -xzvf redis-2.6.11.tar.gz
# mv redis-2.6.11 /usr/local/
# cd /usr/local/redis-2.6.11/
# make
備註:這邊就不make install 了,直接使用make好的文件
3. redis配置
找到配置文件/usr/local/redis-2.6.11/redis.conf
修改如下內容:
daemonize no 改為 yes # 是否後台運行
port 6379 改
⑶ python2.7安裝rediscluster模塊報錯,求助
1如果是在windows上請下載PYTHON2.6的安裝程序,然後直接運行即可安裝完成。2安裝完成後需要到系統的環境變數處設置PYTHON的環境變數具體設置方法如圖3在命令行鍵入python遍可以進入PYTHON的交互編程界面。如果需要在LINUX上安裝以CENTOS為例:1,用ROOT方式登陸到系統輸入yuminstallpython即可完成安裝。2運行SHELL輸入PYTHON即可運行。3執行在shell中輸入pythonany.py即可
⑷ 編寫一個python程序實現redis集群的訪問
用python-2.7.3\python是對的,但是你的hello.py放在那裡?你需要先用「cd 目錄名」轉換當前目錄到存放hello.py的地方,然後執行python-2.7.3\python hello.py。
⑸ python怎麼使用redis
(1)使用 # easy_install redis
(2)直接編譯安裝
#wget https://pypi.python.org/packages/source/r/redis/redis-2.9.1.tar.gz
#tar xvzf redis-2.9.1.tar.gz
#cd redis-2.9.1
#python setup.py install
⑹ python中redis服務怎麼起
redis-py提供兩個類Redis和StrictRedis用於實現Redis的命令,StrictRedis用於實現大部分官方的命令,
並使用官方的語法和命令,Redis是StrictRedis的子類,用於向後兼容舊版本的redis-py。
import redis 導入redis模塊,通過python操作redis 也可以直接在redis主機的服務端操作緩存資料庫
r = redis.Redis(host='192.168.19.130', port=6379) host是redis主機,需要redis服務端和客戶端都起著 redis默認埠是6379
r.set('foo', 'Bar') key是"foo" value是"bar" 將鍵值對存入redis緩存
print r.get('foo') Bar 取出鍵foo對應的值!
⑺ 大數據培訓什麼
大數據課程大綱
javaSE:java入門、java基本語法、流程式控制制語句、數組、面向對象、常用類、集合、IO、多線程、網路編程、正則+反射+xml
Mysql:MySQL資料庫基礎、資料庫連接池、JDBC、MySQL資料庫高級
JAVAEE:HTML、CSS、JSP與Servlet、SSM框架、Java、maven、應用案例
LINUX:在虛擬機中安裝Centos7.0、Linux簡介及許可權概述、Shell基本命令、文檔目錄管理、用戶與用戶組管理、進程管理、軟體管理、shell編程、網路管理和多機操作
HADOOP:hadoop概述、zookeeper安裝與使用、hadoop安裝、yarn資源管理器、hadoop伺服器基礎環境、hadoop偽分布式環境、hdfs分布式文件系統、maprecer分布式計算系統
HIVE:hive介紹與安裝、hive表操作、hive排序、hive數據類型與基礎語法、hive大數據查詢、hive函數
HBASE:hbase概述、hbase原理、hbase的java操作、hbase的高級、hbase安裝、hbase的shell操作、hbase的filter操作
OOZIE:oozie原理與安裝、oozie的任務配置、oozie任務調度
FLUME:flume概述與安裝、fume定製開發、flume高級應用
PYTHON:python基礎、python語法、python高級開發、python開發環境安裝、python組件
REDIS:redis概述、redis集群模式、redis單機模式、redis開發
KAFKA:kafka概述與集群安裝、kafka調優、kafka的api操作
SCALA:scala理念與生態、scala基礎語法、scala開發環境安裝、scala高級特性
SPARK:spark介紹、常用Transformations運算元、spark環境搭建、spark-sql、spark-streaming、rdd原理、spark常用Actions運算元、spark-core、spark-hbase、spark調優
ELK:Lucene概述、elasticsearch單機安裝、elasticsearch開發、elasticsearch概述、elasticsearch集群安裝
FLINK:flink概述、flink窗口、flink安裝、flink開發
⑻ redis到底是個什麼東西
1. 什麼是Redis
Redis是由義大利人Salvatore Sanfilippo(網名:antirez)開發的一款內存高速緩存資料庫。Redis全稱為:Remote Dictionary Server(遠程數據服務),該軟體使用C語言編寫,Redis是一個key-value存儲系統,它支持豐富的數據類型,如:string、list、set、zset(sorted set)、hash。
2. Redis特點
Redis以內存作為數據存儲介質,所以讀寫數據的效率極高,遠遠超過資料庫。以設置和獲取一個256位元組字元串為例,它的讀取速度可高達110000次/s,寫速度高達81000次/s。
Redis跟memcache不同的是,儲存在Redis中的數據是持久化的,斷電或重啟後,數據也不會丟失。因為Redis的存儲分為內存存儲、磁碟存儲和log文件三部分,重啟後,Redis可以從磁碟重新將數據載入到內存中,這些可以通過配置文件對其進行配置,正因為這樣,Redis才能實現持久化。
Redis支持主從模式,可以配置集群,這樣更利於支撐起大型的項目,這也是Redis的一大亮點。
3. Redis應用場景,它能做什麼
眾多語言都支持Redis,因為Redis交換數據快,所以在伺服器中常用來存儲一些需要頻繁調取的數據,這樣可以大大節省系統直接讀取磁碟來獲得數據的I/O開銷,更重要的是可以極大提升速度。
拿大型網站來舉個例子,比如a網站首頁一天有100萬人訪問,其中有一個板塊為推薦新聞。要是直接從資料庫查詢,那麼一天就要多消耗100萬次資料庫請求。上面已經說過,Redis支持豐富的數據類型,所以這完全可以用Redis來完成,將這種熱點數據存到Redis(內存)中,要用的時候,直接從內存取,極大的提高了速度和節約了伺服器的開銷。
總之,Redis的應用是非常廣泛的,而且極有價值,真是伺服器中的一件利器,所以從現在開始,我們就來一步步學好它。
⑼ Python開發需要自己配置redis集群嗎
這個不好說,如果領導讓你干,臨時現學現賣就好了,網路一大堆。那麼多配置需要改,如果不是每天都要弄這個,誰也記不住啊。現在你就熟悉遠離,知道怎麼網路到方法就好了。或者把教程保存好。
⑽ 如何用Python一門語言通吃高性能並發,GPU計算和深度學習
第一個就是並發本身所帶來的開銷即新開處理線程、關閉處理線程、多個處理線程時間片輪轉所帶來的開銷。
實際上對於一些邏輯不那麼復雜的場景來說這些開銷甚至比真正的處理邏輯部分代碼的開銷更大。所以我們決定採用基於協程的並發方式,即服務進程只有一個(單cpu)所有的請求數據都由這個服務進程內部來維護,同時服務進程自行調度不同請求的處理順序,這樣避免了傳統多線程並發方式新建、銷毀以及系統調度處理線程的開銷。基於這樣的考慮我們選擇了基於Tornado框架實現api服務的開發。Tornado的實現非常簡潔明了,使用python的生成器作為協程,利用IOLoop實現了調度隊列。
第二個問題是資料庫的性能,這里說的資料庫包括MongoDB和Redis,我這里分開講。
先講MongoDB的問題,MongoDB主要存儲不同的用戶對於驗證的不同設置,比如該顯示什麼樣的圖片。
一開始每次驗證請求都會查詢MongoDB,當時我們的MongoDB是純內存的,同時三台機器組成一個復制集,這樣的組合大概能穩定承載八九千的qps,後來隨著我們驗證量越來越大,這個承載能力逐漸就成為了我們的瓶頸。
為了徹底搞定這個問題,我們提出了最極端的解決方案,乾脆直接把資料庫中的數據完全緩存到服務進程里定期批量更新,這樣查詢的開銷將大大降低。但是因為我們用的是Python,由於GIL的存在,在8核伺服器上會fork出來8個服務進程,進程之間不像線程那麼方便,所以我們基於mmap自己寫了一套夥伴演算法構建了一個跨進程共享緩存。自從這套緩存上線之後,Mongodb的負載幾乎變成了零。
說完了MongoDB再說Redis的問題,Redis代碼簡潔、數據結構豐富、性能強大,唯一的問題是作為一個單進程程序,終究性能是有上限的。
雖然今年Redis發布了官方的集群版本,但是經過我們的測試,認為這套分布式方案的故障恢復時間不夠優秀並且運維成本較高。在Redis官方集群方案面世之前,開源世界有不少proxy方案,比如Twtter的TwemProxy和豌豆莢的Codis。這兩種方案測試完之後給我們的感覺TwemProxy運維還是比較麻煩,Codis使用起來讓人非常心曠神怡,無論是修改配置還是擴容都可以在配置頁面上完成,並且性能也還算不錯,但無奈當時Codis還有比較嚴重的BUG只能放棄之。
幾乎嘗試過各種方案之後,我們還是下決心自己實現一套分布式方案,目的是高度貼合我們的需求並且運維成本要低、擴容要方便、故障切換要快最重要的是數據冗餘一定要做好。
基於上面的考慮,我們確定基於客戶端的分布式方案,通過zookeeper來同步狀態保證高可用。具體來說,我們修改Redis源碼,使其向zookeeper注冊,客戶端由zookeeper上獲取Redis伺服器集群信息並根據統一的一致性哈希演算法來計算數據應該存儲在哪台Redis上,並在哈希環的下一台Redis上寫入一份冗餘數據,當讀取原始數據失敗時可以立即嘗試讀取冗餘數據而不會造成服務中斷。