91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis演練(1) 搭建redis服務

發布時間:2020-07-14 18:50:51 來源:網絡 閱讀:846 作者:randy_shandong 欄目:開發技術

Redis VS Memcached

通過對比學習,可以加深理解組件的特性。下面兩段文字,摘自各自的官方文檔。

http://www.redis.io/

http://memcached.org/

Redis官方簡介

Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such as            strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.

Memcached官方簡介

Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page        rendering.

Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its API is available for most popular languages.

兩者主要有以下區別(也是redis更優秀的地方)

  1.  redis可以用來做存儲(storge), 而memccached是用來做緩存(cache)
      這個特點主要因為其有”持久化”的功能.

  2. 存儲的數據有”結構”,對于memcached來說,存儲的數據,只有1種類型--”字符串”,
      而redis則可以存儲字符串,鏈表,哈希結構,集合,有序集合.

  3. redis服務端支持高可用。

1.Redis安裝與啟動

比memcached安裝還簡單。

$ cd /usr/local/src
$ wget http://download.redis.io/releases/redis-3.2.3.tar.gz
$ tar xzf redis-3.2.3.tar.gz
$ cd redis-3.2.3
#如果要執行make test測試,需要安裝tcl
$ yum install tcl
$ make PREFIX=/usr/local/redis install
$ cp /usr/local/src/redis-3.2.3/redis.conf  /usr/local/redis/

工具列表

$ ls /usr/local/redis/bin/
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server

redis-benchmark  性能測試工具

redis-check-aof  日志文件檢測工(比如斷電造成日志損壞,可以檢測并修復)

redis-check-dump  快照文件檢測工具,效果類上

redis-cli  客戶端

redis-server 服務端


redis 版hello world

$ /usr/local/redis/bin/redis-server
$ /usr/local/redis/bin/redis-cli 
redis> set foo bar
OK
redis> get foo
"bar"

2.配置文件(redis.conf)

由于redis比memcached功能更全,命令更多,配置參數也響應更多。簡單分類下

模塊
作用
參數
 INCLUDES包含

 NETWORK
網絡

GENERAL
公共
daemonize no

#默認情況下redis 不是以守護進程的模式運行。

pidfile /var/run/redis.pid
#在守護進程模式下,pid進程號文件路徑的存儲位置

port 6379
#監聽的端口號,設置為0的話,redis不會對tcp 連接進行監聽
loglevel notice
#記錄日志的級別

logfile stdout
#日志文件記錄位置, 如果采用daemonize 守護進程的模式,且參數值為stdout,那logs會被重定向到/dev/null

logfile stdout
#日志文件記錄位置, 如果采用daemonize 守護進程的模式,且參數值為stdout,那logs會被重定向到/dev/null
syslog-enabled no
#將日志信息記錄到 syslog 文件中。默認不允許;
syslog-facility local0  (必須是 LOCAL 0 -- LOCAL 7)
作為syslog 的日志設備
databases 16
#數據庫的數量, select dbid ; dbid  取值范圍between 0 and 'databases'-1

REPLICATION復制
slaveof <masterip> <masterport>

#只在slave添加該參數,用于創建一個鏡像服務;

masterauth <master-password>
#如果master使用了requirepass參數,slave就要使用上述參數,進行密碼驗證。
slave-serve-stale-data yes
#當slave丟失與master端的連接,或者復制仍在處理,那么slave會有下列兩種表現:
 當本參數值為yes時,slave為繼續響應客戶端請求,盡管數據已不同步甚至沒有數據(出現在初次同步的情況下);
 當本參數值為no時,slave會返回"SYNC with master in progreee"的錯誤信息;
slave-read-only yes
# slave是可以寫入的數據可以短暫存儲,(會被master的數據同步掉);read only slave 并不是
暴漏給不信任的客戶端,對于master 傳過來的 administrative commands,可以用 rename-command 進行隱藏。

repl-ping-slave-period 10 
#slave根據指定的時間間隔向服務器發送ping請求,默認10s

SNAPSHOTTING

快照

將內存中的數據刷寫到磁盤上

save <seconds>  <changes>

觸發刷新操作

stop-writes-on-bgsave-error yes
#默認情況下,如果在RDB snapshots持久化過程中出現問題,設置該參數后,Redis是不允許用戶進行任何更新操作(set...)

rdbcompression yes  
#在導出.RDB數據庫文件的時候采用LZF壓縮字符串和對象。想節省一些CPU資源可以設置為no,但數據量可能會很大。
rdbchecksum yes
#RDB快照制作過程中會在文件的末尾寫入 crc64的校驗值。這樣可能很好的保證數據的正確性。

dbfilename dump.rdb
# 快照文件名
dir ./ 
#DB工作目錄,必須是目錄名,dumpfile存儲的位置。

repl-timeout 60
#設置了大塊數據I/O、向master請求數據和ping響應的過期時間,默認60s,
確保這個值比 repl-ping-slave-period 大,否則master和slave之間的傳輸過期時間比預想的要短。
repl-disable-tcp-nodelay no
#默認為no,當選擇yes的時候, master會向slave發送少量的tcp packets,(當然占用的帶寬是很少的)
這樣的一個負面影響 delay slave接受數據時間,40 milliseconds 的延遲,在 高流量或者 master slave之間中間節點數很多的情況
下,建議變為 yes
slave-priority 100
#該參數主要是在HA 方面的應用, 優先級越低,月可能成為master候選人

SECURITY安全

#requirepass foobared

配置redis訪問密碼的參數

#rename-command

重命名或禁用某些命令

LIMITS限制
maxclients 10000

#最大并發連接數,默認為一萬,這個跟系統本身的 open-file-limit 有關

maxmemory <bytes>
#最大使用內存;

maxmemory-policy  
# 內存策略:如果達到內存限制了,Redis如何刪除key。你可以在下面五個策略里面選
volatile-lru -> 根據LRU算法生成的過期時間來刪除。
allkeys-lru -> 根據LRU算法刪除任何key。
volatile-random -> 根據過期設置來隨機刪除key。
allkeys->random -> 無差別隨機刪。
volatile-ttl -> 根據最近過期時間來刪除(輔以TTL)
noeviction -> 誰也不刪,直接在寫操作時返回錯誤。
對所有策略來說,如果Redis找不到合適的可以刪除的key都會在寫操作時返回一個錯誤。
maxmemory-samples 3
#個人認為該參數主要用于測試達到內存最大的時候的,現象吧。
LRU和最小TTL算法的實現都不是很精確,但是很接近(為了省內存),可以用樣例做測試

APPEND ONLY MODE
appendfilename appendonly.aof
#append file 的文件名稱

appendfsync everysec
#append log AOF日志文件同步的頻率刷寫磁盤的頻率
fsync() 請求操作系統馬上把數據寫到磁盤上
Redis支持三種不同的模式:
no:不要立刻刷,只有在操作系統需要刷的時候再刷。比較快。
always:每次寫操作都立刻寫入到aof文件。慢,但是最安全。
everysec:每秒寫一次。折衷方案。
默認的 "everysec" 通常來說能在速度和數據安全性之間取得比較好的平衡。

no-appendfsync-on-rewrite no
# 如果AOF的同步策略設置成 "always" 或者 "everysec",那么后臺的存儲進程(后臺存儲或寫入AOF日志)會產生很多磁盤I/O開銷。
某些Linux的配置下會使Redis因為 fsync() 而阻塞很久。
目前對這個情況還沒有完美修正,甚至不同線程的 fsync() 會阻塞我們的 write(2) 請求。
為了緩解這個問題,可以用下面這個選項。它可以在 BGSAVE 或 BGREWRITEAOF 處理時阻止 fsync()。
這就意味著如果有子進程在進行保存操作,那么Redis就處于"不可同步"的狀態。
這實際上是說,在最差的情況下可能會丟掉30秒鐘的日志數據。(默認Linux設定)
如果有延遲的問題那就把這個設為 "yes",否則就保持 "no",這是保存持久數據的最安全的方式。

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
#AOF文件自動重寫。
LUA SCRIPTING 
LUA腳本

REDIS CLUSTER 
集群

cluster-enabled

用于開實例的集群模式

cluster-conf-file

設定了保存節點配置文件的路徑, 默認值為 nodes.conf 。

cluster-node-timeout 15000

#節點互連超時的閥值 

cluster-slave-validity-factor

slave節點檢測因數,開始failover的超時時限是通過factor與timeout的乘積來確定的。

 cluster-require-full-coverage <yes/no> : 如果某一些key space沒有被集群中任何節點覆蓋,集群將停止接受寫入。
   cluster-migration-barrier <count>: 數據遷移的副本臨界數,這個參數表示的是,一個主節點在擁有多少個好的從節點的時候就要割讓一個從節點出來給另一個沒有任何從節點的主節點。

 SLOW LOG日志
#Redis慢查詢日志可以記錄超過指定時間的查詢。運行時間不包括各種I/O時間。
例如:連接客戶端,發送響應數據等。只計算命令運行的實際時間(這是唯一一種命令運行線程阻塞而無法同時為其他請求服務的場景
slowlog-log-slower-than 10000(單位微秒)
#慢查詢日志長度,這個長度沒有限制。只要有足夠的內存就行可以通過 SLOWLOG RESET 來釋放內存(當一個新的命令被寫進日志的時候,最老的那個記錄會被刪掉。)。
slowlog-max-len 128
(ps:日志居然是在內存里面的,)

對于虛擬內存的使用,
### 警告!虛擬內存在Redis 2.4是反對的。
### 非常不鼓勵使用虛擬內存!!
在2.6中 根本沒有其相關配置,
 LATENCY MONITOR監控報告
...
EVENT NOTIFICATION
通知,消息隊列
...
ADVANCED CONFIG高級
...




參考資源

http://weipengfei.blog.51cto.com/1511707/1217504


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

林西县| 达日县| 安阳县| 天祝| 铁力市| 义马市| 古田县| 潜山县| 榆社县| 措美县| 安图县| 林周县| 北安市| 天等县| 台南县| 平阴县| 六枝特区| 永和县| 湖南省| 特克斯县| 诸暨市| 内乡县| 台前县| 仙桃市| 佛山市| 陆河县| 泰宁县| 徐闻县| 吉水县| 三门峡市| 邵东县| 凤阳县| 全椒县| 阳高县| 且末县| 武功县| 平果县| 鞍山市| 通化市| 色达县| 绥中县|