原创 Bash編程中的數組 - 索引數組續

在索引數組中說到數組中有元素刪除時,使用for((expr1;expr2;expr3 ))訪問,如何過濾掉unset狀態的元素。$ array_name=([0]="a" [1]="bb" [2]="ccc" [3]="dddd")$ un

原创 Bash編程中的字符串處理

名詞定義parameter:變量名,若有值,其爲字符串,如abcxyz;不表示位置參數和數組的情況。name:由字母數字和下劃線組成,且以字母或下劃線開頭的字符串。word:由若干字符組成的字符串(沒有name定義中約束的一個字符串)。 

原创 Bash編程中的數組 - 索引數組

數組的類型Bash提供了2種數組類型,索引(indexed)和關聯(associative)數組。索引數組(下標從0開始)較常用,下面是其的使用。數組的創建通過shell內建命令declare顯式創建,declare -a array_na

原创 MongoDB Replica Set搭建

第0部分 業務信息業務名稱: xyz端口號: 28017第1部分 準備環境創建mongodb用戶# useradd mongodb創建數據目錄# mkdir -pv /data1/mongodb/28017/data# chown -R m

原创 Redis的內存

內存使用統計127.0.0.1:6379> INFO memory# Memoryused_memory:87057136used_memory_human:83.02Mused_memory_rss:22122496used_memory

原创 Redis的集羣(伸縮)

Redis集羣提供了節點的擴容和收縮方案,在不影響集羣對外服務的情況下,可以爲集羣添加節點進行擴容,也可以下線節點進行縮容。其中的原理可理解爲槽和對應的數據在不同節點間移動。擴容集羣在Redis的集羣(搭建)中搭建了6個節點,其中3個主節點

原创 Bash編程中變量有無雙引號探祕

對於一般的變量,有無雙引號效果是一樣的,如下所示:$ sport="marathon"$ echo $sportmarathon$ echo "$sport"marathon那麼,對於二般的變量,就有差別了,如下:$ cat sports.

原创 Redis Cluster的noaddr標記

某業務Redis Cluster中一個節點的負載較高,要將其負責的部分slot遷移到另一個節點。查看集羣狀態時,出現了flags字段爲noaddr的標記。192.168.1.4:2008> cluster nodes78641a9cf009

原创 Redis的高可用(使用篇)

Redis的複製解決了單點問題,但主節點若出現故障,則要人工干預進行故障轉移。先看看1主2從(master,slave-1和slave-2)的Redis主從模式下,如何進行故障轉移的。1. 主節點發生故障後,客戶端連接主節點失敗,兩個從節點

原创 Shell中的Quoting

Shell中Quoting(引用),可以用來移除字符的特殊意思,令其保留字面含義;可以用來進行多種Shell Expansion。有3種quoting機制:轉義字符,單引號,和雙引號。1. 轉義字符非引用的反斜槓‘\’稱爲轉義字符,它保留了

原创 說說B+ Tree

先看下B+ Tree數據結構的特點(From Wikipedia).1. The primary value of a B+ tree is in storing data for efficient retrieval in a bloc

原创 Redis的複製

複製解決了單點問題,滿足了故障恢復和負載均衡的需求,也是稍後Redis Sentinel和Cluster的基礎。配置複製,主要是SLAVEOF命令的使用,其可以建立複製關係,斷開復制關係,和切換主節點。 127.0.0.1:6379> he

原创 What is a shell and what is Bash?

常聽說:shell編程,Bash編程,和Bash shell編程,究竟什麼是shell,又何爲Bash,兩者有什麼聯繫…簡單的說,shell是命令解釋器,用於解析和執行命令。它對用戶屏蔽了操作系統底層(kernel)的複雜性,是兩者間的橋樑

原创 說說explain中的Using filesort

有時查看SQL的執行計劃時, 會遇到Using filesort, 如下.mysql> explain select * from tb1 where col1 = 4 order by col2\G********************

原创 Redis的持久化

Redis支持RDB和AOF兩種持久化方式,持久化功能有效避免了因進程退出造成數據丟失的問題。RDB持久化是把當前進程數據生成快照保存到磁盤的過程,觸發RDB持久化的過程分爲手動和自動觸發。手動觸發RDB持久化的操作1. 手動執行SAVE命