1. 程式人生 > >linux安裝redis及phpredis環境配置(超詳細)

linux安裝redis及phpredis環境配置(超詳細)

下載安裝包

  cd /home/redis/tar

   wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz

   tar zxvf redis-2.4.17.tar.gz

   cd redis-2.4.17

   make 

   cd src 

   make install

   在該目錄會看到以下檔案

    

redis-benchmark      壓力測試

redis-check-aof       檢查redis持久化命令檔案的完整性

redis-check-dump   檢查redis持久化資料檔案的完整性

redis-cli                  redis在linux上的客戶端

redis-sentinel          做叢集用的

redis-server            linux上的服務端

將redis原始碼目錄下的  src目錄裡的 redis-cli和 redis-server 拷貝到工作目錄裡.同時將原始碼根目錄下的redis.conf 也拷貝到工作目錄裡

mkdir -p /usr/local/redis

mkdir -p /usr/local/redis

cp /home/redis/tar/redis-2.4.17/redis.conf /usr/local/redis

cd /home/redis/tar/redis-2.4.17/src

cp mkreleasehdr.sh redis-benchmak redis-check-aof redis-check-dump redis-cli redis-server   /usr/local/redis

啟動redis伺服器:

 cd /usr/local/redis

 vi ./redis.conf

把引數daemonize no 改為 daemonize yes

 ./redis-server redis.conf

檢視redis 是否啟動成功

ps -ef | grep redis

netstat -tunpl |grep 6379

關閉redis

pkill redis-server

二. redis配置檔案說明

/usr/local/redis/redis.conf

1 daemonize  no

預設情況下,redis 不是在後臺執行的,如果需要在後臺執行,把該項的值更改為yes

2 pidfile  /var/run/redis.pid

當Redis 在後臺執行的時候,Redis 預設會把pid 檔案放在/var/run/redis.pid,你可以配置到其他地址。當執行多個redis 服務時,需要指定不同的pid 檔案和埠

3 port

監聽埠,預設為6379

4 #bind 127.0.0.1

指定Redis 只接收來自於該IP 地址的請求,如果不進行設定,那麼將處理所有請求,在生產環境中為了安全最好設定該項。預設註釋掉,不開啟

5 timeout 0

設定客戶端連線時的超時時間,單位為秒。當客戶端在這段時間內沒有發出任何指令,那麼關閉該連線

6 tcp-keepalive 0

指定TCP連線是否為長連線,"偵探"訊號有server端維護。預設為0.表示禁用

7 loglevel notice

log 等級分為4 級,debug,verbose, notice, 和warning。生產環境下一般開啟notice

8 logfile stdout

配置log 檔案地址,預設使用標準輸出,即列印在命令列終端的視窗上,也可以修改為日誌檔案對應的目錄地址

9 databases 16

設定資料庫的個數,可以使用SELECT 命令來切換資料庫。預設使用的資料庫是0號庫。預設16個庫

10

save 900 1

save 300 10

save 60 10000

儲存資料快照的頻率,即將資料持久化到dump.rdb檔案中的頻度。用來描述"在多少秒期間至少多少個變更操作"觸發snapshot資料儲存動作

預設設定,意思是:

if(在60 秒之內有10000 個keys 發生變化時){

進行映象備份

}else if(在300 秒之內有10 個keys 發生了變化){

進行映象備份

}else if(在900 秒之內有1 個keys 發生了變化){

進行映象備份

}

11 stop-writes-on-bgsave-error yes

當持久化出現錯誤時,是否依然繼續進行工作,是否終止所有的客戶端write請求。預設設定"yes"表示終止,一旦snapshot資料儲存故障,那麼此server為只讀服務。如果為"no",那麼此次snapshot將失敗,但下一次snapshot不會受到影響,不過如果出現故障,資料只能恢復到"最近一個成功點"

12 rdbcompression yes

在進行資料映象備份時,是否啟用rdb檔案壓縮手段,預設為yes。壓縮可能需要額外的cpu開支,不過這能夠有效的減小rdb檔案的大,有利於儲存/備份/傳輸/資料恢復

13 rdbchecksum yes

讀取和寫入時候,會損失10%效能

14 rdbchecksum yes

是否進行校驗和,是否對rdb檔案使用CRC64校驗和,預設為"yes",那麼每個rdb檔案內容的末尾都會追加CRC校驗和,利於第三方校驗工具檢測檔案完整性

14 dbfilename dump.rdb

映象備份檔案的檔名,預設為 dump.rdb

15 dir ./

資料庫映象備份的檔案rdb/AOF檔案放置的路徑。這裡的路徑跟檔名要分開配置是因為Redis 在進行備份時,先會將當前資料庫的狀態寫入到一個臨時檔案中,等備份完成時,再把該臨時檔案替換為上面所指定的檔案,而這裡的臨時檔案和上面所配置的備份檔案都會放在這個指定的路徑當中

16 # slaveof <masterip> <masterport>

設定該資料庫為其他資料庫的從資料庫,併為其指定master資訊。

17 masterauth

當主資料庫連線需要密碼驗證時,在這裡指定

18 slave-serve-stale-data yes

當主master伺服器掛機或主從複製在進行時,是否依然可以允許客戶訪問可能過期的資料。在"yes"情況下,slave繼續向客戶端提供只讀服務,有可能此時的資料已經過期;在"no"情況下,任何向此server傳送的資料請求服務(包括客戶端和此server的slave)都將被告知"error"

19 slave-read-only yes

slave是否為"只讀",強烈建議為"yes"

20 # repl-ping-slave-period 10

slave向指定的master傳送ping訊息的時間間隔(秒),預設為10

21 # repl-timeout 60

slave與master通訊中,最大空閒時間,預設60秒.超時將導致連線關閉

22 repl-disable-tcp-nodelay no

slave與master的連線,是否禁用TCP nodelay選項。"yes"表示禁用,那麼socket通訊中資料將會以packet方式傳送(packet大小受到socket buffer限制)。

可以提高socket通訊的效率(tcp互動次數),但是小資料將會被buffer,不會被立即傳送,對於接受者可能存在延遲。"no"表示開啟tcp nodelay選項,任何資料都會被立即傳送,及時性較好,但是效率較低,建議設為no

23 slave-priority 100

適用Sentinel模組(unstable,M-S叢集管理和監控),需要額外的配置檔案支援。slave的權重值,預設100.當master失效後,Sentinel將會從slave列表中找到權重值最低(>0)的slave,並提升為master。如果權重值為0,表示此slave為"觀察者",不參與master選舉

24 # requirepass foobared

設定客戶端連線後進行任何其他指定前需要使用的密碼。警告:因為redis 速度相當快,所以在一臺比較好的伺服器下,一個外部的使用者可以在一秒鐘進行150K 次的密碼嘗試,這意味著你需要指定非常非常強大的密碼來防止暴力破解。

25 # rename-command CONFIG 3ed984507a5dcd722aeade310065ce5d    (方式:MD5('CONFIG^!'))

重新命名指令,對於一些與"server"控制有關的指令,可能不希望遠端客戶端(非管理員使用者)連結隨意使用,那麼就可以把這些指令重新命名為"難以閱讀"的其他字串

26 # maxclients 10000

限制同時連線的客戶數量。當連線數超過這個值時,redis 將不再接收其他連線請求,客戶端嘗試連線時將收到error 資訊。預設為10000,要考慮系統檔案描述符限制,不宜過大,浪費檔案描述符,具體多少根據具體情況而定

27 # maxmemory <bytes>

redis-cache所能使用的最大記憶體(bytes),預設為0,表示"無限制",最終由OS實體記憶體大小決定(如果實體記憶體不足,有可能會使用swap)。此值儘量不要超過機器的實體記憶體尺寸,從效能和實施的角度考慮,可以為實體記憶體3/4。此配置需要和"maxmemory-policy"配合使用,當redis中記憶體資料達到maxmemory時,觸發"清除策略"。在"記憶體不足"時,任何write操作(比如set,lpush等)都會觸發"清除策略"的執行。在實際環境中,建議redis的所有物理機器的硬體配置保持一致(記憶體一致),同時確保master/slave中"maxmemory""policy"配置一致。

當記憶體滿了的時候,如果還接收到set 命令,redis 將先嚐試剔除設定過expire 資訊的key,而不管該key 的過期時間還沒有到達。在刪除時,

將按照過期時間進行刪除,最早將要被過期的key 將最先被刪除。如果帶有expire 資訊的key 都刪光了,記憶體還不夠用,那麼將返回錯誤。這樣,redis 將不再接收寫請求,只接收get 請求。maxmemory 的設定比較適合於把redis 當作於類似memcached的快取來使用。

28 # maxmemory-policy volatile-lru

記憶體不足"時,資料清除策略,預設為"volatile-lru"。

volatile-lru  ->對"過期集合"中的資料採取LRU(近期最少使用)演算法.如果對key使用"expire"指令指定了過期時間,那麼此key將會被新增到"過期集合"中。將已經過期/LRU的資料優先移除.如果"過期集合"中全部移除仍不能滿足記憶體需求,將OOM.
allkeys-lru ->對所有的資料,採用LRU演算法
volatile-random ->對"過期集合"中的資料採取"隨即選取"演算法,並移除選中的K-V,直到"記憶體足夠"為止. 如果如果"過期集合"中全部移除全部移除仍不能滿足,將OOM
allkeys-random ->對所有的資料,採取"隨機選取"演算法,並移除選中的K-V,直到"記憶體足夠"為止
volatile-ttl ->對"過期集合"中的資料採取TTL演算法(最小存活時間),移除即將過期的資料.
noeviction ->不做任何干擾操作,直接返回OOM異常
另外,如果資料的過期不會對"應用系統"帶來異常,且系統中write操作比較密集,建議採取"allkeys-lru"

29 # maxmemory-samples 3

預設值3,上面LRU和最小TTL策略並非嚴謹的策略,而是大約估算的方式,因此可以選擇取樣值以便檢查

29 appendonly no

預設情況下,redis 會在後臺非同步的把資料庫映象備份到磁碟,但是該備份是非常耗時的,而且備份也不能很頻繁。所以redis 提供了另外一種更加高效的資料庫備份及災難恢復方式。開啟append only 模式之後,redis 會把所接收到的每一次寫操作請求都追加到appendonly.aof 檔案中,當redis 重新啟動時,會從該檔案恢復出之前的狀態。但是這樣會造成appendonly.aof 檔案過大,所以redis 還支援了BGREWRITEAOF 指令,對appendonly.aof 進行重新整理。如果不經常進行資料遷移操作,推薦生產環境下的做法為關閉映象,開啟appendonly.aof,同時可以選擇在訪問較少的時間每天對appendonly.aof 進行重寫一次。

另外,對master機器,主要負責寫,建議使用AOF,對於slave,主要負責讀,挑選出1-2臺開啟AOF,其餘的建議關閉

30 # appendfilename appendonly.aof

aof檔名字,預設為appendonly.aof

31 

# appendfsync always
appendfsync everysec
# appendfsync no

設定對appendonly.aof 檔案進行同步的頻率。always 表示每次有寫操作都進行同步,everysec 表示對寫操作進行累積,每秒同步一次。no不主動fsync,由OS自己來完成。這個需要根據實際業務場景進行配置

32 no-appendfsync-on-rewrite no

在aof rewrite期間,是否對aof新記錄的append暫緩使用檔案同步策略,主要考慮磁碟IO開支和請求阻塞時間。預設為no,表示"不暫緩",新的aof記錄仍然會被立即同步

33 auto-aof-rewrite-percentage 100

當Aof log增長超過指定比例時,重寫log file, 設定為0表示不自動重寫Aof 日誌,重寫是為了使aof體積保持最小,而確保儲存最完整的資料。

34 auto-aof-rewrite-min-size 64mb

觸發aof rewrite的最小檔案尺寸

35 lua-time-limit 5000

lua指令碼執行的最大時間

36 slowlog-log-slower-than 10000

"慢操作日誌"記錄,單位:微秒(百萬分之一秒,1000 * 1000),如果操作時間超過此值,將會把command資訊"記錄"起來.(記憶體,非檔案)。其中"操作時間"不包括網路IO開支,只包括請求達到server後進行"記憶體實施"的時間."0"表示記錄全部操作

37 slowlog-max-len 128

"慢操作日誌"保留的最大條數,"記錄"將會被佇列化,如果超過了此長度,舊記錄將會被移除。可以通過"SLOWLOG <subcommand> args"檢視慢記錄的資訊(SLOWLOG get 10,SLOWLOG reset)

38

 hash-max-ziplist-entries 512

hash型別的資料結構在編碼上可以使用ziplist和hashtable。ziplist的特點就是檔案儲存(以及記憶體儲存)所需的空間較小,在內容較小時,效能和hashtable幾乎一樣.因此redis對hash型別預設採取ziplist。如果hash中條目的條目個數或者value長度達到閥值,將會被重構為hashtable。

這個引數指的是ziplist中允許儲存的最大條目個數,,預設為512,建議為128
hash-max-ziplist-value 64

ziplist中允許條目value值最大位元組數,預設為64,建議為1024

39 

list-max-ziplist-entries 512
list-max-ziplist-value 64

對於list型別,將會採取ziplist,linkedlist兩種編碼型別。解釋同上。

40 set-max-intset-entries 512

intset中允許儲存的最大條目個數,如果達到閥值,intset將會被重構為hashtable

41 

zset-max-ziplist-entries 128
zset-max-ziplist-value 64

zset為有序集合,有2中編碼型別:ziplist,skiplist。因為"排序"將會消耗額外的效能,當zset中資料較多時,將會被重構為skiplist。

42 activerehashing yes

是否開啟頂層資料結構的rehash功能,如果記憶體允許,請開啟。rehash能夠很大程度上提高K-V存取的效率

43 

client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

客戶端buffer控制。在客戶端與server進行的互動中,每個連線都會與一個buffer關聯,此buffer用來佇列化等待被client接受的響應資訊。如果client不能及時的消費響應資訊,那麼buffer將會被不斷積壓而給server帶來記憶體壓力.如果buffer中積壓的資料達到閥值,將會導致連線被關閉,buffer被移除。

buffer控制型別包括:normal -> 普通連線;slave ->與slave之間的連線;pubsub ->pub/sub型別連線,此型別的連線,往往會產生此種問題;因為pub端會密集的釋出訊息,但是sub端可能消費不足.
指令格式:client-output-buffer-limit <class> <hard> <soft> <seconds>",其中hard表示buffer最大值,一旦達到閥值將立即關閉連線;
soft表示"容忍值",它和seconds配合,如果buffer值超過soft且持續時間達到了seconds,也將立即關閉連線,如果超過了soft但是在seconds之後,buffer資料小於了soft,連線將會被保留.
其中hard和soft都設定為0,則表示禁用buffer控制.通常hard值大於soft.

44 hz 10

Redis server執行後臺任務的頻率,預設為10,此值越大表示redis對"間歇性task"的執行次數越頻繁(次數/秒)。"間歇性task"包括"過期集合"檢測、關閉"空閒超時"的連線等,此值必須大於0且小於500。此值過小就意味著更多的cpu週期消耗,後臺task被輪詢的次數更頻繁。此值過大意味著"記憶體敏感"性較差。建議採用預設值。

45 

# include /path/to/local.conf
# include /path/to/other.conf

額外載入配置檔案。

 phpredis擴充套件安裝

   phpredis中文手冊:

  下載phpredis

   https://github.com/owlient/phpredis

   cd /home/redis/tar

   tar phpredis.tar.gz

   cd phpredis.tar.gz

   /usr/local/php/bin/phpize    #此指令必須在phpredis解壓包/home/redis/tar/phpredis 執行

安裝autoconf-2.62.tar.gz

 cd /home/redis/tar

 tar zxvf autoconf-2.62.tar.gz

 cd autoconf-2.62

 ./configure && make && make install

  

  配置並編譯安裝phpredis

 ./configure --with-php-config=/usr/local/php/bin/php-config

  make && make install

  

複製程式碼
nginx 為php安裝redis擴充套件
獲取原始碼包
wget https://github.com/nicolasff/phpredis/archive/master.zip
或https://github.com/owlient/phpredis
unzip master.zip
cd phpredis-master/
/application/php/bin/phpize #如果是yum安裝php-devel 那麼直接使用phpize
./configure --with-php-config=/usr/local/php/bin/php-config #如果是yum安裝的php 直接。、configure
make 
make install
修改/etc/php.ini
新增
extension_dir ="/usr/lib64/php/modules/"
extension=redis.so
重啟php
/etc/init.d/php-fpm restart
複製程式碼

給php.ini設定redis擴充套件

   開啟php.ini配置檔案設定以下程式碼

   vi /usr/local/php/etc/php.ini

   

   重啟apache

   /usr/local/http2/bin/apachectl restart

檢視php是否有引入redis擴充套件

 

php使用redis示例程式碼

如果不清楚php-redis擴充套件內部到底有什麼方法可以利用反射

String型別

set 設定key對應的值為string型別的value

get 獲取key對應的string值,如果key不存在返回nil

setnx 設定key對應的值為string型別的value 如果key已經存在 返回0,nx是not exist的意思

setex設定key對應的值為string型別的value 並指定此鍵值對應的有效期

例如:我們新增一個color=red的鍵值對並指定有效期為10秒

setrange 設定指定key的value值的子字串

mset 一次設定多個key的值,成功返回ok表示所有的值都設定了,失敗返回0表示沒有任何值被設定

msetnx 一次設定多個key的值,成功返回ok表示所有的值都被設定了,失敗返回0表示沒有任何值被設定(其中的key已存在),不會覆蓋已存在的key

getset 設定key的值,並返回key的舊值

getrange獲取key的value值的子字串

mget 一次獲取多個key的值,如果對應的key不存在則對應返回nil

 incr對key的值做加加操作,並返回新的值

incrby同incr類似,加指定的值,key不存在時候會設定key,並認為原來的value是0.

decr 對key的值做減減操作

decrby 同decr類似減指定的值

append 給指定key的字串追加value,返回新字串值的長度

strlen取指定key的value值的長度

hash型別

redis hash是一個string型別的field和value的對映表。它的新增 刪除操作都是0(1) hash特別適合用於儲存物件,相比較於將物件的每個欄位存成string型別。將一個物件儲存在hash型別中會佔用更少的記憶體。並且可以更方便的存取整個物件。

 hset設定hash field為指定值,如果key不存在則先建立

hsetnx設定hash field為指定值,如果key不存在,則先建立。如果存在返回0.

hmset 同時設定hash的多個field的值,設定成功返回ok

hget 獲取hash field的值

hmget 獲取全部指定的hash field field1 的值

hincrby 指定的hash field 加上給定的值

hexists 測試指定的field是否存在 如果存在返回1 否則返回0

hlen 返回指定hash的field數量

hdel 刪除指定hash的field

hkeys 返回hash的所有field

hvals 返回hash的所有value

hgetall獲取某個hash中全部的field及value

list型別

list是一個連結串列結構主要功能是push  pop 獲取一個範圍的所有值等等。操作中key理解為連結串列的名字。redis的list型別其實就是一個每個子元素都是string型別的雙向連結串列。我們可以通過push pop操作從連結串列的頭部或者尾部新增刪除元素。這樣list既可以作為棧,又可以作為佇列。

lpush 在key對應list的頭部新增字串元素  先進後出原則

rpush 在key對應的list的尾部新增字串元素   先進先出原則

linsert 在key對應list的特定位置前或後新增字串

lset設定list中指定下標的元素值

lrem 從key對應的list中刪除n個和value相同的元素(n<0從尾刪除,n=0全部刪除)

ltrim 保留指定key的值範圍內的資料刪除其他的值

ltrim list1 1 -1 從下標1開始保留全部的資料 1 2 從下標1開始保留兩個資料

lpop從list的頭部刪除元素,並返回刪除元素

rpop從list的尾部刪除元素,並返回刪除元素

rpoplpush 從第一個list的尾部移除元素並新增到第二個list的頭部

lindex 返回名稱為key的list中index位置的元素

llen 返回key對應list的長度

 set型別

set是集合,它是string型別的無序集合。set是通過hash table實現的,新增,刪除和查詢的複雜度都是0(1).對集合我們可以取並集,交集,差集。通過這些操作我們可以實現sns中的好友推薦和blog的tag功能

sadd 向名稱為key的set中新增元素

srem 刪除名稱為key的set中的元素

spop隨機返回並刪除名稱為key的set中一個元素

sdiff 返回所有給定key與第一個key的差集

sdiffstore返回所有給定key與第一個key的差集,並將結果存為另一個key

sinter 返回所有給定key的交集

sinterstore返回所有給定key的交集,並將結果存為另一個key

sunion 返回所有給定key的並集

sunionstore 返回所有給定key的並集並存儲為myset7

smove 從第一個key對應的set中移除member並新增到第二個對應的set中

scard 返回名稱為key的set的元素個數

sismember 測試member是否是名稱為key的set元素

srandmember 隨機返回名稱為key的set的一個元素,但不刪除元素

sorted set型別

sorted set是set的一個升級版本,它在set的基礎上增加一個順序屬性,這個屬性在新增修改元素的時候可以指定,每次指定後,zset會自動重新按新的值調整順序,可以理解為有兩列的mysql表,一列存value.一列存順序,操作key理解為zset的名字。

zadd向名稱為key的zset中新增元素member,score用於排序。如果該元素存在,則更新其順序。

zrang讀取zset中的值。withscores 取順序號

zrem刪除名稱為key的zset中的元素member

zincrby如果在名稱為key的zset中已經存在元素member,則該元素的score增加increment否則向該集合中新增該元素,其score的值為increment

zrank 返回zset集合value的索引值

zrevrank返回名稱為key的zset中member元素的排名(按score從大到小排序)即下標

zrevrange 返回名稱為key的zset(按score從大到小順序)中的index從start到end的所有元素

zrangebyscore 返回指定下標的值

zcount 返回集合中給定區間的數量

zcard 返回集合中元素的個數

zremrangebyrank 刪除集合中排名在給定區間的元素(按索引)

zremrangebyscore 刪除集合中score在給定區間的元素(按順序號)

 redids中鍵值相關命令

keys 返回滿足給定pattern的所有key  用表示式*,代表取出所有的key

exists 確認一個key是否存在 存在返回1 不存在返回0

del 刪除一個key

expire 設定一個key的過期時間  ttl 檢視key的剩餘過期時間 為-1 表示已經過期

select 是選擇資料庫   select 0  資料庫0-15

move 將當前資料庫中的key轉移到其他資料庫中

persist 移除給定key的過期時間

randomkey 隨機返回key空間的一個key

rename 重新命名key

type 返回值的型別

伺服器相關命令

ping 測試連線是否存活

quit或exit 退出連線

dbsize 返回當前資料庫中key的數目

info 獲取伺服器的資訊和統計

config get 實時儲存收到的請求

config get dir 獲取dir這個引數配置的值如果想獲取全部引數資料的 配置值也很簡單,只需要執行 config get *j

即可將全部值都顯示出來

flushdb 刪除當前選擇資料庫中的所有key

flushall 刪除所有資料庫中的所有key

redis高階使用特性

1.安全性

設定客戶端連線後進行任何其他指定前需要輸入密碼。

  因為redis速度相當快,所以在一臺比較好的伺服器下,一個外部的使用者可以在一秒鐘進行150k次的密碼嘗試。這意味著你需要指定非常非常強大的密碼來防止暴力破解。

 vi  /usr/local/redis/redis.conf

  新增 requirepass = ceshi

 

  pkill redis-server

  重啟redis

 /usr/local/redis/redis-server  /usr/local/redis/redis.conf

 /usr/local/redis/redis-cli -a ceshi

 auth mima 設定許可權  就是登陸客戶端的時候沒有指定 -a

 

 

redis主從複製過程

 1.slave與master建立連線,傳送sync同步命令

 2、master會啟動一個後臺程序,將資料庫快照儲存到檔案中,同時master主程序會開始收集新的寫命令並快取。

 3、後臺完成儲存後,就將此檔案傳送給slave

 4、slave將此檔案儲存到硬碟上

配置主從伺服器:

 配置slave伺服器很簡單,只需要在slave的配置檔案中加入以下配置:

 slaveof 192.168.1.1 6379 #指定master的ip和埠

 masterauth ceshi #這是主機的密碼

在redis_slave 伺服器的/usr/local/redis/redis.conf

重啟redis_slave服務的redis

redis對事務的支援目前還比較簡單。redis只能保證一個client發起的事務中的命令可以連續的執行。而中間不會插入其他client的命令。當一個client在一個連線中發出multi命令時。這個連線會進入一個事務上下文,該連線後續的命令不會立即執行,而是先放到一個佇列中,當執行exec命令時,redis會順序的執行佇列中的所有命令。

discard 取消事務

當事務中任何一個出錯 但redis的事務不會全部回滾

樂觀鎖複雜事務控制

redis 持久化機制

redis是一個支援持久化的記憶體資料庫,也就是說redis需要經常將記憶體中的資料同步到硬碟來保證持久化

1.snapshotting(快照)也是預設方式

2.Append-onlyfile(縮寫aof)的方式

配置檔案中新增 relly-use-vm yes

 

相關推薦

linux安裝redisphpredis環境配置(詳細)

下載安裝包   cd /home/redis/tar    wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz    tar zxvf redis-2.4.17.tar.gz    cd redis-2.4.17    make     cd

linux安裝redis配置開機自啟

一、上傳Redis安裝包到Linux伺服器某檔案中,再解壓Redis安裝包 tar xzf redis-3.2.9.tar.gz 二、進入Redis目錄 cd redis-3.2.9 三、編譯原碼 Make 圖例:   四、新建立一個目錄存放Red

Linux 安裝redis使用

Redis的安裝 此處安裝包為  redis-3.0.7.tar.gz 1.利用filezilla.exe  將安裝包上傳到/root/ 2.對安裝包進行解壓 cd /root/ tar -zxvf redis-3.0.7.tar.gz 3.編譯,將原始碼編譯

linux安裝redis解決無法遠端連線的問題

首先建立安裝目錄# mkdir /usr/local/redis下載redis壓縮包wget http://download.redis.io/releases/redis-4.0.2.tar.gz解壓

linux環境安裝redis擴展

config bsp 拷貝 redis restart releases ssa service check 安裝redis 1、下載源碼,解壓縮後編譯源碼。 wget http://download.redis.io/releases/redis-4.0.2.ta

Linux系統安裝python環境配置

Linux簡介 Linux是一款作業系統核心,是一個類Unix系統的的作業系統 Linux發行版 各個發行廠家基於Linux核心之上,和一些常用應用做成一個包,就是Linux發行版。常見的有Ubuntu、RedHat、CentOS、Debian、Fedora等等

centos 7安裝部署java jdk 8,設定java環境變數(詳細,其他linux系統也可通過該方法安裝java,配置java環境變數)

前置配置 作業系統:CentOS Linux release 7.5.1804 Java版本號:jdk1.8.0_191 #OS版本號查詢 [[email protected] ~]$ cat

【一】linux安裝redis(單機版)、3種啟動方式、配置檔案介紹。

環境ubuntu16.04 解壓 tar -zxvf redis-3.2.6.tar.gz 修改資料夾名稱 mv redis-3.2.6 redis 編譯 cd /app/redis make 編譯好後會看到redis.conf和src檔案 安裝 cd

linux安裝jdk配置環境變數

jdk-7u71-linux-i586.tar.gz jdk-7u75-linux-x64.tar.gz 1.上傳包 2.檢視安裝程式   rpm -qa | grep -i jdk 3. 刪除指定j

CentOS安裝RedisPHPredis擴充套件Redis配置檔案詳解

一.redis安裝1. 下載Rediscd /app/wget http://download.redis.io/releases/redis-2.8.7.tar.gz2. 編譯安裝Redistar xf redis-2.8.7.tar.gzcd redis-2.8.7make && make

linux 安裝nodejs配置環境變數

下載到nodejs官方網站下載nodejs 官網地址 https://nodejs.org解壓 tar -xvf node-v8.11.2-linux-x64.tar 配置環境變數vim .bash_profile(我這裡配置區域性變數,vim /etc/profile 全域

WDCP面板Web環境安裝redisphpredis擴展應用方法

upload dir targe clas 擴展 content 人人 linux nbsp 根據網友的要求需要在WDCP面板環境中安裝人人商城程序,但是這個程序需要支持redis與phpredis擴展。根據老蔣認知,WDCP默認搭建普通網站肯定是沒有問題的,但具體是不是支

Linux安裝vsftpd配置詳解

技術 第一個 config vpd b2c 大端 工具 端口修改 系統 1 安裝vsftpd組件 安裝完後,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件。[root@bogon ~]# yum -y install vsftpd 2、FTP

Linux虛擬機安裝完centos後環境配置

方法 ping tun iba 環境配置 per com force ron linux下面安裝軟件 yum install rpm -ivh 編譯安裝 三部曲:./configure make make install 卸載

linux——安裝vsftp配置虛擬匿名用戶腳本

install acc all vsftpd isa mirrors ant help 匿名用戶 #!/bin/bash systemctl disable firewalldsystemctl stop firewalldsetenforce 0 cd /etc/yum.

linux安裝Zookeeperredis集群

ngx .sh lun 常用命令 -h zkserver stat 親測 red 親測有效: 1.linux下安裝zookeeper:https://www.cnblogs.com/zuolun2017/p/8186254.html 2.linux下安裝redis集群:

Hive3.0.0基於hadoop2.9.1和ubuntu16.04的安裝配置問題解決【詳細

Hive3.0.0基於hadoop2.9.1+ubuntu16.04的安裝配置【超詳細過程】 在後面有很多配置過程中出現的問題的解決方法,主要參考部落格: https://www.cnblogs.com/pejsidney/p/8944305.html https://blog.csdn

雲伺服器linux系統啟動web專案環境配置_(一、jdk下載安裝

官網下載jdk(linux)  檢視linux 多少位 命令:getconf LONG_BIT    下載對應jdk 1.上傳壓縮包            cd ..回

linux安裝redis設定

 一、下載、解壓、編譯安裝 wget http://download.redis.io/releases/redis-5.0.0.tar.gz tar -zxvf redis-5.0.0.tar.gz cd redis-5.0.0makemake install 安裝完成,最後一步 m

linux centos7 lnmp 安裝redisphp開啟redis擴充套件 自測

最近專案需要把memcache換成redis,所以就安裝redis,大概費了三四個小時把,才把各種坑填滿,現在來了解一下: 首先,你的linux環境能用,php也可以正常訪問,就是說lnmp環境沒問題,那麼我們來一起看一下,由於是昨天安裝的,所以圖片之類的,就是找的別人跟我出一樣錯誤的部落格