Time of Update: 2017-01-13
Redis 叢集是一個提供在多個Redis間節點間共用資料的程式集.redis3.0以前,只支援主從同步的,如果主的掛了,寫入就成問題了。3.0出來後就可以很好幫我們解決這個問題。目前redis 3.0還不穩定,如果要用在生產環境中,要謹慎。一,redis伺服器說明192.168.10.219 6379 192.168.10.219 6380 192.168.10.219 6381 192.168.10.220 6382 192.16
Time of Update: 2017-01-13
PHP數組實際上是雜湊表,Redis似乎不支援二維數組,但是可以使用hmset把PHP數組儲存為hash類型的資料,使用hmget讀取一維的鍵沒問題,讀取二維的多維的鍵就返回false。$hset = array( 'WUST'=>'WUHAN SI', 'birth'=>1031, 'marray'=>array( 'app
Time of Update: 2017-01-13
Redis server went away查看系統記錄檔時發現每天定時有該錯誤拋出:PHP Fatal error: Uncaught exception 'RedisException' with message 'Redis server went
Time of Update: 2017-01-13
分享一段可以將redis資料庫配置開機自動啟動的指令碼剛開始想把命令 redis-server /etc/redis/redis.conf 加入到 /etc/rc.d/rc.local 竟然不行,只好再找別的辦法第一步 先編寫主服務開機啟動sh指令碼 /etc/init.d/redis 代碼如下複製代碼 #!/bin/bash## redis - this script starts and stops the redis-server daemon##
Time of Update: 2017-01-13
Redis資料庫定義:typedef struct redisDb { dict *dict; /* The keyspace for this DB */ dict *expires; &
Time of Update: 2017-01-13
通訊初始化完成之後,sentinel會主動和master、slave進行通訊,擷取他們的資訊。擷取主伺服器資訊首先,sentinel會和master建立兩個串連,分別是命令串連和訂閱串連(分別儲存在sentinelRedisInstance的cc和pc欄位中)。 代碼如下複製代碼 void sentinelHandleRedisInstance(sentinelRedisInstance *ri) {
Time of Update: 2017-01-13
Redis對鍵提供存留時間,在不指定存留時間時,存留時間是永久。時間到期後Redis會自動刪除這個鍵。可以用EXPIRE命令,時間單位時秒,如果一個鍵是被設為有限的存留時間,那麼在SET key進行重新賦值的時候會被再次設為永久:SET session:captcha sd2aEXPIRE session:captcha 600 取消存留時間,將鍵的存留時間設為永久,是PERSIST:PERSIST
Time of Update: 2017-01-13
Redis SORT是由Redis提供的一個排序命令。集合中的標籤是無序的,可以使用SORT排序。如:redis>SADD jihe 5(integer) 1redis>SADD jihe 1(integer) 1redis>SADD jihe 2(integer) 1redis>SADD jihe 8(integer) 1redis>SORT jihe1) "1"2) "2"3) "5"4)
Time of Update: 2017-01-13
# 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## 記憶體配置大小寫是一樣的.比如 1gb 1Gb
Time of Update: 2017-01-13
一、redis-server的安裝由於我現網的機器使用的是ubuntu系統,所以這裡就以ubuntu為例,可以直接使用apt源安裝redis-server$ sudo apt-get install redis-server安裝完成後,可以使用dpkg命令查看各檔案所在的路徑: 代碼如下複製代碼 $ sudo dpkg -L redis-server/./etc/etc/default/etc/default/redis-server/etc/redis/etc/redis/
Time of Update: 2017-01-13
使用Redis加鎖的方式可以防止重複操作,包括表單提交,ajax等http請求,它的原理就是redis的incr命令給鍵自增,如果傳回值不是1,就表示是重複請求,具體看代碼: 代碼如下複製代碼 /** * 鎖定請求 * @param int $expire 鎖定時間 * @param string $mark 自訂標籤 * @return bool */protected function
Time of Update: 2017-01-13
在 Redis 裡,所謂 SETNX,是「SET if Not eXists」的縮寫,也就是只有不存在的時候才設定,可以利用它來實現鎖的效果,不過很多人沒有意識到 SETNX 有陷阱!比如說:某個查詢資料庫的介面,因為調用量比較大,所以加了緩衝,並設定緩衝到期後重新整理,問題是當並發量比較大的時候,如果沒有鎖機制,那麼緩衝到期的瞬間,大量並發請求會穿透緩衝直接查詢資料庫,造成雪崩效應,如果有鎖機制,那麼就可以控制只有一個請求去更新緩衝,其它的請求視情況要麼等待,要麼使用到期的緩衝。下面以目前
Time of Update: 2017-01-13
在redis中,hash資料類型儲存的資料與mysql資料庫中儲存一條記錄極為相似,是一個string類型的field和value的映射表,它特別適合用於儲存物件,但欄位值只能是字串,不支援其他類型。Redis hash是一個string類型的field和value的映射表.它的添加、刪除操作都是 O(1) (平均)。hash特別適合用於儲存物件。相較於將對象的每個欄位存成單個 string類型。將一個對象存儲在 hash
Time of Update: 2017-01-13
與上篇中list類型不同的是,set集合中不允許出現重複的元素,因此set類型也可以快速判斷某一元素是否存在。應用情境:取出兩個QQ號中的共同的好友數;判斷某個ip是否在白名單內等。以下是無序集合類型(set)的一些常用操作命令:1.【 sadd key vaule 】 往集合中插入一個元素,如果value值已存在集合中,則返回0,不會被重複插入。2.【 sinter key1 key2 ... keyN 】 取出n個key之間的交集。比如 key1裡面有值a,b,c,d,e,key2裡面有d,
Time of Update: 2017-01-13
redis中的list類型有點類似於程式設計語言中的數組,list類型如下圖所示,實際上是一種雙向鏈表結構,通過lpush、lpop、rpush、rpop這幾個命令來控制鏈表中資料出入,所以list類型可以用作棧,也可以用作隊列一樣。redis鏈表list類型從元素插入和刪除的效率來看,如果從鏈表的兩頭插入或刪除元素,會非常的高效,即使鏈表中已經儲存了上百萬條的記錄,也可以在很短的時間內完成。然而需要說明的是,如果元素插入或刪除操作是作用於鏈表中間,那將會是非常低效的。相信對於有良好資料結構基礎
Time of Update: 2017-01-13
redis和memcached兩種緩衝,個人覺得redis更好用,因為它不僅提供了豐富的資料類型,還能保證資料的持久性,下面就來簡單的介紹一下redis中常用的幾種資料類型。1. 字串類型(string)這是redis中最基本的類型,也是最常用的類型,跟memcached一樣,即一個key對應一個值這種。操作也很簡單,常用操作命令有get、set、del等。2.
Time of Update: 2017-01-13
以下是redis命令列下的一些常用的基礎命令,可以供大家參考學習:1.【 set key value 】 存入一個key和值。如:set myname reson2.【 get key 】 讀取一個key的值。3.【 del key 】 刪除一個key。4.【 del key1 key2 ... keyN 】 刪除多個key。如:del myname1 myname25.【 exists key 】 判斷一個key是否存在。6.【 type key 】 查看key的類型。7.【 rename
Time of Update: 2017-01-13
我們都知道,把一些熱資料存到緩衝中可以極大的提高速度,那麼問題來了,是用Redis好還是Memcached好呢,以下是它們兩者之間一些簡單的區別與比較:1. Redis不僅支援簡單的k/v類型的資料,同時還支援list、set、zset(sorted set)、hash等資料結構的儲存,使得它擁有更廣闊的應用情境。2. Redis最大的亮點是支援資料持久化,它在啟動並執行時候可以將資料備份在磁碟中,斷電或重啟後,快取資料可以再次載入到記憶體中,只要Redis配置的合理,基本上不會遺失資料。3.
Time of Update: 2017-01-13
使用Redis可以很方便的防止表單或者按鈕重複提交,給動作加鎖,在一定時間內不能再次執行。//防止重複提交$lock_nopay = 'nopay_'.$sb_id.$sb_uid.$pay_money;if(!$this->lock(10,$lock_nopay)){
Time of Update: 2017-01-13
一.Redis內建事務機制Redis事務通過MULTI 、 EXEC 、 DISCARD 、WATCH和UNWATCH命令操作,過程如下:通過MULTI 開啟事務,然後添加任意條命令到隊列,通過EXEC 執行隊列命令,通過DISCARD 放棄事務,通過WATCH提供鎖機制,通過UNWATCH取消對key的監控。例1:普通用法127.0.0.1:6379> multiOK127.0.0.1:6379> incr aaaQUEUED127.0.0.1:6379> incr