Time of Update: 2015-10-13
標籤:A)編譯安裝makemake install (/usr/local)make install PREFIX=$HOME/progs(可以自由指定安裝路徑)B)同步的API介面redisContext *redisConnect(const char *ip, int port);void *redisCommand(redisContext *c, const char *format, ...);void freeReplyObject(void
Time of Update: 2015-10-08
標籤:下載Redis在Redis的官網下載頁上有各種各樣的版本,我這次是在windows上部署的,要去GitHub上下載。目前的是2.8.12版的,直接解壓,在\bin\release 目錄下有個壓縮包,這就是我們需要的: 啟動Redis直接在的目錄開啟命令視窗,運行: redis-server redis.windows.conf 結果就悲劇了,提示:QForkMasterInit: system error caught. error
Time of Update: 2015-10-12
標籤:1.redis簡介:Redis是一個開源,先進的key-value儲存系統。它通常被稱為資料結構伺服器,因為值(value)可以是 字串(String), 雜湊(hashes), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。redis 與memcached一樣,為了保證效率,資料都是緩衝在記憶體中。區別的是redis會周期性的把更新的資料寫入磁碟或者把修改
Time of Update: 2015-10-13
標籤: 在Redis中,我們可以將Set類型看作為沒有排序的字元集合,和List類型一樣,我們也可以在該類型的資料值上執行添加、刪除或判斷某一元素是否存在等操作。需要說明的是,這些操作的時間複雜度為O(1),即常量時間內完成次操作。Set可包含的最大元素數量是4294967295。 和List類型不同的是,Set集合中不允許出現重複的元素,這一點和C++標準庫中的set容器是完全相同的。
Time of Update: 2015-10-13
標籤:根據一些測試整理出來的一份方案:1. Redis 效能對於redis 的一些簡單測試,僅供參考:測試環境:Redhat6.2 , Xeon E5520(4核)*2/8G,1000M網卡Redis 版本:2.6.9 用戶端機器使用redis-benchmark 簡單GET、SET操作:1. 1單一實例測試1. Value大小:10Byte~1390Byte處理速度: 7.5 w/s,速度受單線程處理能力限制2. Value 大小:1400 左右處理速度突降到5w/s
Time of Update: 2015-10-13
標籤: 配置主從複製 建立從檔案夾,譬如 /usr/local/slaves/下建立 6380 6381 兩個檔案夾(兩個從伺服器) 複製redis.conf到剛建立的兩個檔案夾中 修改redis.conf 中的 port 6380 slaveof 127.0.0.1 6379 ------ip表示主伺服器的ip 連接埠表示主伺服器連接埠 儲存退出,另一個從伺服器做同樣修改,如果連接埠不是6380,修改斷開即可,此處修改為6381
Time of Update: 2015-10-12
標籤: Redis利用記憶體發揮的高效能讀寫在很多情境下大有所為,但是Redis本身畢竟還是一個單機資料庫,如果系統對其屬於強依賴,那麼還是必須做好必要的容災,針對這個問題,有以下幾種策略: 一、M/S切換 由於Redis是單機資料庫,所以針對MySQL的一些容災方案也能順利適用,例如當Redis意外宕機,可以將請求馬上切到備庫,同時快速恢複資料。 二、AOF Redis有兩種持久化的方式,分別是SnapShotting和Append-Only
Time of Update: 2015-10-10
標籤:Redis hash是一個string類型的 field和value的映射表.它的添加、刪除操作都是O(1)(平均)。hash特別適合用於儲存物件。相較於將對象的每個欄位存成單個string 類型。將一個Object Storage Service在hash類型中會佔用更少的記憶體,並且可以更方便的存取整個對象。省記憶體的原因是建立一個hash對象時開始是用zipmap(又 稱為small hash)來儲存的。這個zipmap其實並不是hash
Time of Update: 2015-10-10
標籤:對Set操作的命令sadd(key, member):向名稱為key的set中添加元素membersrem(key, member) :刪除名稱為key的set中的元素memberspop(key) :隨機返回並刪除名稱為key的set中一個元素smove(srckey, dstkey, member):將member元素從名稱為srckey的集合移到名稱為dstkey的集合scard(key) :返回名稱為key的set的基數sismember(key, member)
Time of Update: 2015-10-10
標籤:假設兩台redis伺服器,ip分別為:192.168.1.101和192.168.1.103,如何在101上通過redis-cli訪問103上的redis呢?在遠端連線103之前,先講下redis-cli的幾個關鍵參數:用法:redis-cli [OPTIONS] [cmd [arg [arg ...]]]-h <主機ip>,預設是127.0.0.1-p <連接埠>,預設是6379-a
Time of Update: 2015-10-09
標籤:1.redis介紹Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。2.阻塞隊列使用非阻塞隊列的時候有一個很大問題就是:它不會對當前線程產生阻塞,那麼在面對類似消費者-生產者的模型時,就必須額外地實現同步策略以及線程間喚醒策略,這個實現起來就非常麻煩。但是有了阻塞隊列就不一樣了,它會對當前線程產生阻塞,比如一個線程從一個空的阻塞隊列中取元素,此時線程會被阻塞直到阻塞隊列中有了元素。當隊列中有
Time of Update: 2015-10-10
標籤:1. Keys redis本質上一個key-value db,所以我們首先來看看他的key.首先key也是字串類型,但是key中不能包括邊界字元;由於key不是binary safe的字串,所以像"my key"和"mykey\n"這樣包含空格和換行的key是不允許的註:順便說一下在redis內部並不限制使用binary字元,這是redis協議限制的。"\r\n"在協議格式中會作為特殊字元。redis
Time of Update: 2015-10-10
標籤:keepalived官方有中文文檔:LVS + Keepalived Chinese application doc - March 16, 2010。 keepalived 實現VRRP協議,從路由層級實現VIP切換,可以完全避免類似heartbeat 腦裂問題。可以很nice的實現主從、主備、互備方案,尤其是無狀態業務,有狀態業務就需要額外花些功夫了。 既然mysql
Time of Update: 2015-10-09
標籤:Redis介紹Redis是一種進階key-value資料庫。它跟memcached類似,不過資料可以持久化,而且支援的資料類型很豐富。有字串,鏈表、雜湊、集合和有序集合5種。支援在伺服器端計算集合的並、交和補集(difference)等,還支援多種排序功能。所以Redis也可以被看成是一個資料結構伺服器。Redis的所有資料都是儲存在記憶體中,然後不週期性通過非同步方式儲存到磁碟上(這稱為“半持久化模式”);也可以把每一次資料變化都寫入到一個append only
Time of Update: 2015-10-09
標籤:redis 自啟指令碼#!/bin/bash# author#date 2014-03-12#chkconfig: - 90 23pidfile="/var/run/redis.pid"#config /etc/redis/redis.conf#source function library.. /etc/rc.d/init.d/functions#defualt filesredis_conf=${redis_conf:-"/etc/redis/redis.conf"}redis=${
Time of Update: 2015-10-08
標籤:# Redis 設定檔# 當配置中需要配置記憶體大小時,可以使用 1k, 5GB, 4M 等類似的格式,其轉換方式如下(不區分大小寫)## 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes# 1gb => 1024*1024*1024 bytes##
Time of Update: 2015-10-05
標籤: Redis源碼閱讀-鏈表部分-鏈表資料結構在Adlist.h Adlist.cRedis的鏈表是雙向鏈表,內部定義了一個迭代器。雙向鏈表的函數主要是鏈表建立、刪除、節點插入、頭插入、尾插入、第N個節點、節點迭代遍曆、鏈表複製、鏈表rotate、節點刪除typedef struct listNode { struct listNode *prev; struct listNode *next; void *value; //定義為void
Time of Update: 2015-10-05
標籤:下面是一個簡單的下單操作 <?phpinclude "MMysql.class.php";$configArr=[‘host‘=>,‘port‘=>,‘user‘=>,‘passwd‘=>,‘dbname‘=>,];$db = new MMysql($configArr);$sql="select * from sdb_b2c_products where product_id=‘38‘";$product=$db->doSql($sql);if(
Time of Update: 2015-10-05
標籤:redis使用sds代替char *字串,其定義如下:typedef char *sds;struct sdshdr { unsigned int len; unsigned int free; char buf[];};sds指向了char 字串 sdshdr是字串頭結構比較巧妙使用char buf[]存放字串實際內容注意char *buf和char buf[]是不同的sizeof(sdshdr)等於8,而不是我以為的12連續記憶體結構如下: 0--
Time of Update: 2015-10-04
標籤:一、下載、編譯redis是以源碼方式發行的,先下載源碼,然後在linux下編譯1.1 http://www.redis.io/download 先到這裡下載Stable穩定版,目前最新版本是2.8.171.2 上傳到linux,然後運行以下命令解壓tar xzf redis-2.8.17.tar.gz1.3 編譯cd redis-2.8.17make註:make命令需要linux上安裝gcc,若機器上未安裝gcc,redhat環境下,如果能連網,可鍵入yum