成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

redis

SimonMa / 2573人閱讀

摘要:是完全開源免費的,用語言編寫的,遵守協(xié)議。是一個高性能的分布式內(nèi)存數(shù)據(jù)庫,基于內(nèi)存運行并支持持久化的數(shù)據(jù)庫,是當(dāng)前最熱門的數(shù)據(jù)庫之一也被人們稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器。當(dāng),且兩者的值相差較大時,表示存在內(nèi)部或者外部的內(nèi)存碎片。

博文參考
http://blog.sina.com.cn/s/blog_a1e9c7910102vl64.html
http://blog.csdn.net/freebird_lb/article/details/7733970
http://www.cnblogs.com/stephen-liu74/category/354125.html
http://blog.csdn.net/lifetragedy/article/details/50628820
redis概述

redis

全稱:REmote DIctionary Server(遠程字典服務(wù)器)。是完全開源免費的,用C語言編寫的, 遵守BCD協(xié)議。是一個高性能的(key/value)分布式內(nèi)存數(shù)據(jù)庫,基于內(nèi)存運行并支持持久化的NoSQL數(shù)據(jù)庫,是當(dāng)前最熱門的NoSql數(shù)據(jù)庫之一,也被人們稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器。

Redis 與其他 key - value 緩存產(chǎn)品有以下三個特點

1)Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤中,重啟的時候可以再次加載進行使用
2)Redis不僅僅支持簡單的key-value類型的數(shù)據(jù),同時還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲
3)Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份

下載

Http://redis.io/
Http://www.redis.cn/

相比memcached,Rdeis有以下優(yōu)點:

1. redis原生支持的數(shù)據(jù)類型更多。
2. redis具有持久化機制,可以定期將內(nèi)存中的數(shù)據(jù)持久化到硬盤上。
3. redis支持master-slave模式的數(shù)據(jù)備份。
4. 性能。Redis作者的說法是平均到單個核上的性能,在單條數(shù)據(jù)不大的情況下Redis更好。
為什么這么說呢,理由就是Redis是單線程運行的。因為是單線程運行,所以和Memcached的多線程相比,整體性能肯定會偏低。因為是單線程運行,所以IO是串行化的,網(wǎng)絡(luò)IO和內(nèi)存IO,因此當(dāng)單條數(shù)據(jù)太大時,由于需要等待一個命令的所有IO完成才能進行后續(xù)的命令,所以性能會受影響。

conf配置文件
#### GENERAL ####
daemonize yes #以守護進程的方式運行
pidfile “/var/run/redis/redis.pid” #pidfile
port 6379 #port
tcp-backlog 511 #tcp的backlog隊列長度,backlog的長度是未建立的tcp連接和已經(jīng)建立的tcp連接之和,等待進程從隊列中調(diào)用建立的連接。
bind 192.168.1.30 10.0.0.1 #監(jiān)聽的地址,可以指定多個,0.0.0.0代表本機所有所有地址。
timeout 5000 #客戶端連接的超時時間,單位是毫秒。
loglevel notice #日志的記錄等級。
logfile “/var/log/redis/redis.log” #日志的存放位置。
databases 16 #redis所啟動的數(shù)據(jù)庫(名稱空間)數(shù)量,可以在cli中通過select #來切換。
## SNAPSHOTTING ##
save 900 1 #RDB方式的持久化策略,也就是說RDB方式下,數(shù)據(jù)被定期存儲到磁盤的策略。
save 300 10 #此處三個save依次表示,在900秒內(nèi),如果1個key發(fā)生改變就寫一次磁盤;
save 60 10000 #在300秒內(nèi),如果10個key發(fā)生改變就寫一次磁盤;在60秒內(nèi)如果10000個key發(fā)生改變就寫一次磁盤。
stop-writes-on-bgsave-error yes #在bgsave時,發(fā)生寫入操作時會報告錯誤么,即在bgsave時不允許寫入數(shù)據(jù)。
rdbcompression yes #rdb文件可以被壓縮。
rdbchecksum yes #rdb文件開啟校驗。
dbfilename “dump.rdb” #db的名稱為 dump.rdb
dir “/redis/data1” #RDB的數(shù)據(jù)目錄,在指定非默認目錄時,需要修改目錄的屬主屬組為你當(dāng)前redis進程的屬主屬組,一般為redis。
# APPEND ONLY MODE #
appendonly yes #開啟AOF持久化方式。
appendfilename “appendonly.aof” #AOF文件名。
appendfsync everysec #AOF的持久化策略,有三個值,always表示只要發(fā)生數(shù)據(jù)操作就執(zhí)行保存或者重寫AOF;everysec表示一秒一次;no表示關(guān)閉;
no-appendfsync-on-rewrite yes #在重寫時將當(dāng)前AOF的日志存儲在內(nèi)存中,防止AOF附加操作與重寫產(chǎn)生數(shù)據(jù)寫入堵塞問題,提高了性能卻增加了數(shù)據(jù)的風(fēng)險性。
auto-aof-rewrite-percentage 100 #每當(dāng)AOF日志是上次重寫的一倍時就自動觸發(fā)重寫操作。
auto-aof-rewrite-min-size 64mb #自動觸發(fā)重寫的最低AOF日志大小為64MB,為了防止在AOF數(shù)據(jù)量較小的情況話頻繁發(fā)生重寫操作。
aof-load-truncated yes #當(dāng)redis發(fā)生奔潰,通過AOF恢復(fù)時,不執(zhí)行最后最后那條因為中斷而發(fā)生問題的語句。
#### LIMITS ####
maxclients 10000 #限制最大的并發(fā)用戶連接數(shù)為10000條。
# maxmemory  #限制最大的內(nèi)存使用量。
### SECURITY ###
requirepass  #設(shè)定認證的密碼,如果設(shè)定了,在遠程cli登錄,主從配置和sentinel時都需要指定對應(yīng)參數(shù)為此passwd。
主從復(fù)制原理與架構(gòu)實現(xiàn)
只需在從節(jié)點的配置文件中修改以下配置即可:
### REPLICATION ###
slaveof 192.168.1.29 6379 #主節(jié)點地址, 。
#masterauth  #如果設(shè)置了訪問認證就需要設(shè)定此項。
slave-server-stale-data yes #當(dāng)slave與master連接斷開或者slave正處于同步狀態(tài)時,如果slave收到請求允許響應(yīng),no表示返回錯誤。
slave-read-only yes #slave節(jié)點是否為只讀。
slave-priority 100 #設(shè)定此節(jié)點的優(yōu)先級,是否優(yōu)先被同步。
redis的高可用方案 – sentinel
只需在sentinel節(jié)點的配置文件中修改以下配置即可:
vim /etc/redis-sentinel.conf
port 26379
#sentinel announce-ip 1.2.3.4 #默認監(jiān)聽在0.0.0.0 所以此處可以注釋。
dir “/tmp”
sentinel monitor mymaster 192.168.1.29 6379 1 #sentinel moitor    <法定人數(shù)quorum>
#設(shè)定master節(jié)點的*名稱*和位置,法定人數(shù)表示多少臺sentinel節(jié)點認同才可以上線。
sentinel down-after-milliseconds mymaster 5000 #如果聯(lián)系不到節(jié)點5000毫秒,我們就認為此節(jié)點下線。
sentinel failover-timeout mymaster 60000 #設(shè)定轉(zhuǎn)移主節(jié)點的目標(biāo)節(jié)點的超時時長。
sentinel auth-pass   #如果redis節(jié)點啟用了auth,此處也要設(shè)置password。
一些關(guān)于sentinel的命令:
sentinel master  #查看此復(fù)制集群的主節(jié)點信息。
sentinel slaves  #查看此復(fù)制集群的從節(jié)點信息。
sentinel failover  #切換指定的節(jié)點為節(jié)點為主節(jié)點。
Redis服務(wù)器的信息
redis_version : 2.8.19                              # Redis服務(wù)器版本

redis_git_sha1:00000000                         #Git  SHA1

redis_git_dirty: 0                                 #Git dirty flag

os:  Linux 3.2.0-23-generic x86_64                  #Redis服務(wù)器的宿主操作系統(tǒng)

arch_bits: 64                                    #服務(wù)器系統(tǒng)架構(gòu)(32位或64位)

multiplexing_api: epoll                            #Redis使用的事件處理機制

gcc_version:4.6.3                                 #編譯Redis時所使用的GCC版本

process_id:7573                                  #Redis服務(wù)的進程PID

run_id:f1c233c4194cba88616c5bfff2d97fc3074865c1    #Redis服務(wù)器的隨機標(biāo)識符(用于Sentinel和集群)

tcp_port:6379                                    #Redis服務(wù)監(jiān)聽的TCP端口

uptime_in_seconds:7976                           #自Redis服務(wù)器啟動以來,經(jīng)過的秒數(shù)

uptime_in_days:0                 #自Redis服務(wù)器啟動以來,經(jīng)過的天數(shù). 這里還不到1天,故顯示為0

hz:10                           # Redis調(diào)用內(nèi)部函數(shù)來執(zhí)行許多后臺任務(wù)的頻率為每秒10次   

lru_clock:1133773                 #以分鐘為單位進行自增的時鐘,用于LRU管理

config_file:/data/redis_6379/redis.conf  #redis.conf配置文件所在路徑
Clients記錄客戶信息
connected_clients:2                #已連接客戶端的數(shù)量(不包括通過從服務(wù)器連接的客戶端)

client_longest_output_list:0         #當(dāng)前的客戶端連接中,最長的輸出列表

client_biggest_input_buf:0          #當(dāng)前連接的客戶端中,最大的輸入緩存

blocked_clients:0                  #正在等待阻塞命令(BLOP、BRPOP、BRPOPLPUSH)的客戶端的數(shù)量
Memory記錄服務(wù)器內(nèi)存信息
used_memory:894216            #Redis分配器分配給Redis的內(nèi)存。例如,當(dāng)Redis增加了存儲數(shù)據(jù)時,需要的內(nèi)存直接從分配器分配給它的內(nèi)存里面取就可以了,也就是直接從used_memory取。而Redis分配器分配給Redis的內(nèi)存,是從操作系統(tǒng)分配給Redis的內(nèi)存里面取的(單位是字節(jié))

used_memory_human:873.26K     #以人類可讀格式顯示Redis消耗的內(nèi)存

used_memory_rss:2691072        #操作系統(tǒng)分配給Redis的內(nèi)存。也就是Redis占用的內(nèi)存大小。這個值和top指令輸出的RES列結(jié)果是一樣的。RES列結(jié)果就表示Redis進程真正使用的物理內(nèi)存(單位是字節(jié))

used_memory_peak:914160        #Redis的內(nèi)存消耗峰值(單位是字節(jié))

used_memory_peak_human:892.73K  #以人類可讀的格式返回Redis的內(nèi)存消耗峰值

used_memory_lua:35840           #Lua引擎所使用的內(nèi)存大?。▎挝皇亲止?jié))

mem_fragmentation_ratio:3.01      # used_memory_rss和used_memory之間的比率

mem_allocator:jemalloc-3.6.0       #在編譯時指定的,Redis所使用的內(nèi)存分配器??梢允莑ibc、jemalloc或者tcmalloc

小知識

理想情況下,used_memory_rss的值應(yīng)該只比used_memory稍微高一點。

當(dāng)rss >used,且兩者的值相差較大時,表示存在(內(nèi)部或者外部的)內(nèi)存碎片。內(nèi)存碎片的比率可以通過mem_fragmentation_ratio的值看出;

當(dāng)used>rss時,表示Redis的部分內(nèi)存被操作系統(tǒng)換出到交換空間,在這種情況下,操作可能會產(chǎn)生明顯的延遲。
Persistence記錄RDB持久化和AOF持久化信息
loading:0           #一個標(biāo)志值,記錄了服務(wù)器是否正在載入持久化文件

rdb_changes_since_last_save:0  #距離最后一次成功創(chuàng)建持久化文件之后,改變了多少個鍵值

rdb_bgsave_in_progress:0       #一個標(biāo)志值,記錄服務(wù)器是否正在創(chuàng)建RDB文件

rdb_last_save_time:1427189587  #最近一次成功創(chuàng)建RDB文件的UNIX時間戳

rdb_last_bgsave_status:ok       #一個標(biāo)志值,記錄了最后一次創(chuàng)建RDB文件的結(jié)果是成功還是失敗

rdb_last_bgsave_time_sec:0     #記錄最后一次創(chuàng)建RDB文件耗費的秒數(shù)

rdb_current_bgsave_time_sec:-1  #如果服務(wù)器正在創(chuàng)建RDB文件,那么這個值記錄的就是當(dāng)前的創(chuàng)建RDB操作已經(jīng)耗費了多長時間(單位為秒)

aof_enabled:0  #一個標(biāo)志值,記錄了AOF是否處于打開狀態(tài)

aof_rewrite_in_progress:0  #一個標(biāo)志值,記錄了服務(wù)器是否正在創(chuàng)建AOF文件

aof_rewrite_scheduled:0   #一個標(biāo)志值,記錄了RDB文件創(chuàng)建完之后,是否需要執(zhí)行預(yù)約的AOF重寫操作

aof_last_rewrite_time_sec:-1     #記錄了最后一次AOF重寫操作的耗時

aof_current_rewrite_time_sec:-1  #如果服務(wù)器正在進行AOF重寫操作,那么這個值記錄的就是當(dāng)前重寫操作已經(jīng)耗費的時間(單位是秒)

aof_last_bgrewrite_status:ok   #一個標(biāo)志值,記錄了最后一次重寫AOF文件的結(jié)果是成功還是失敗

開啟AOF持久化功能

在Persistence部分還會加上以下域:
aof_current_size:14301     #AOF文件目前的大小

aof_base_size:14301       #服務(wù)器啟動時或者最近一次執(zhí)行AOF重寫之后,AOF文件的大小

aof_pending_rewrite:0     #一個標(biāo)志值,記錄了是否有AOF重寫操作在等待RDB文件創(chuàng)建完之后執(zhí)行

aof_buffer_length:0       # AOF緩沖區(qū)的大小

aof_rewrite_buffer_length:0  #AOF重寫緩沖區(qū)的大小

aof_pending_bio_fsync:0    #在后臺I/0隊列里面,等待執(zhí)行的fsync數(shù)量

aof_delayed_fsync:0        #被延遲執(zhí)行的fsync數(shù)量
Stats記錄統(tǒng)計信息
total_connections_received:8   #服務(wù)器已經(jīng)接受的連接請求數(shù)量

total_commands_processed:10673  #服務(wù)器已經(jīng)執(zhí)行的命令數(shù)量

instantaneous_ops_per_sec:0   #服務(wù)器每秒中執(zhí)行的命令數(shù)量

rejected_connections:0        #因為最大客戶端數(shù)量限制而被拒絕的連接請求數(shù)量

expired_keys:0               #因為過期而被自動刪除的數(shù)據(jù)庫鍵數(shù)量

evicted_keys:0               #因為最大內(nèi)存容量限制而被驅(qū)逐(evict)的鍵數(shù)量

keyspace_hits:1              #查找數(shù)據(jù)庫鍵成功的次數(shù)

keyspace_misses:0           #查找數(shù)據(jù)庫鍵失敗的次數(shù)

pubsub_channels:0           #目前被訂閱的頻道數(shù)量

pubsub_patterns:0           #目前被訂閱的模式數(shù)量

latest_fork_usec:159          #最近一次fork()操作耗費的時間(毫秒)
Replication記錄主從復(fù)制的信息
role:master                 #在主從復(fù)制中,充當(dāng)?shù)慕巧H绻麤]有主從復(fù)制,單點的,它充當(dāng)?shù)慕巧彩莔aster

connected_slaves:1           #有一個slave連接上來

slave0:ip=14.17.119.220,port=6379,state=online,offset=718446,lag=0  #slave的IP、端口、狀態(tài)等

如果當(dāng)前服務(wù)器是從服務(wù)器的話,那么這個部分還會加上以下域:

master_host :主服務(wù)器的IP地址

master_port:主服務(wù)器監(jiān)聽的端口號

master_link_status:復(fù)制連接當(dāng)前的狀態(tài),up表示連接正常,down表示連接斷開

master_last_io_seconds_ago:距離最近一次與主服務(wù)器進行通信已經(jīng)過去了多少秒

master_sync_in_progress:一個標(biāo)志值,記錄了主服務(wù)器是否正在與這個從服務(wù)器進行同步

如果同步操作正在進行,那么這個部分還會加上以下域:

master_sync_left_bytes:距離同步完成還缺多少字節(jié)的數(shù)據(jù)

master_sync_last_io_seconds_ago: 距離最近一次與主服務(wù)器進行通信已經(jīng)過去了多少秒

如果主從服務(wù)器之間的連接處于斷線狀態(tài),那么這個部分還會加上以下域:

master_link_down_since_seconds: 主從服務(wù)器連接斷開了多少秒

cpu部分記錄了CPU的計算量統(tǒng)計信息,它包含以下域:

   used_cpu_sys:75.46   #Redis服務(wù)器耗費的系統(tǒng)CPU

   used_cpu_user:90.12  #Redis服務(wù)器耗費的用戶CPU

   used_cpu_sys_children:0.00  #Redis后臺進程耗費的系統(tǒng)CPU

   used_cpu_user_children:0.00  #Redis后臺進程耗費的用戶CPU

Keyspace部分記錄了數(shù)據(jù)庫相關(guān)的統(tǒng)計信息,如數(shù)據(jù)庫的鍵數(shù)量、數(shù)據(jù)庫已經(jīng)被刪除的過期鍵數(shù)量。對于每個數(shù)據(jù)庫,這個部分會添加一行以下格式的信息:

db0:keys=25,expires=0,avg_ttl=0   #0號數(shù)據(jù)庫有25個鍵、已經(jīng)被刪除的過期鍵數(shù)量為0個

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/40571.html

相關(guān)文章

  • redis主從配置

    摘要:下載檢查一下看有沒有問題安裝完之后,會在目錄下生成幾個可執(zhí)行文件,分別是。其中是啟動服務(wù)的,是進入客戶端的。 1、下載redis3.2.3 wget http://download.redis.io/releases/redis-3.2.3.tar.gz tar -zxvf redis-3.2.3.tar.gz cd redis-3.2.3 make make test //檢查一下 ...

    zhaot 評論0 收藏0
  • phpredis

    摘要:多線程版本中,和的工作方式和非持久連接的工作方式相同。如果設(shè)為默認,一次發(fā)出一條命令,有時會返回空數(shù)組。 Redis 類和方法 用法 Redis 類 RedisException 類 預(yù)定義常量 Redis 類 創(chuàng)建Redis客戶端 示例 $redis = new Redis(); RedisException 類 如果無法訪問Redis服務(wù)器,phpredis拋出Redis...

    AdolphLWQ 評論0 收藏0
  • redis Q&A

    摘要:是什么基于內(nèi)存有客戶端和服務(wù)器端非關(guān)系型數(shù)據(jù)庫應(yīng)用場景是什么緩存隊列數(shù)據(jù)持久存儲如何安裝如何啟動如何關(guān)閉客戶端如何啟動下載解壓編譯安裝服務(wù)啟動注意這種方式啟動使用的是默認配置通過啟動參數(shù)告訴使用指定配置文件使用下面命令啟動服務(wù)關(guān) redis 是什么? 基于內(nèi)存 有客戶端和服務(wù)器端 NoSQL非關(guān)系型數(shù)據(jù)庫 redis 應(yīng)用場景是什么? 緩存 隊列 數(shù)據(jù)持久存儲 redis 如何...

    saucxs 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<