NoSQL--redis安裝主從配置詳解常用命令-創(chuàng)新互聯(lián)

Redis也是key-value存儲系統(tǒng),官方站點 http://redis.io,但相對于memcache,有如下優(yōu)勢:

創(chuàng)新互聯(lián)致力于做網(wǎng)站、成都做網(wǎng)站,成都網(wǎng)站設(shè)計,集團網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇創(chuàng)新互聯(lián),就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!

1、支持更多地value類型(string、hash、lists、sets、sorted sets等);

2、支持數(shù)據(jù)持久化,預(yù)防服務(wù)重啟后需要重新存儲;

redis 有兩種文件格式:全量數(shù)據(jù)(RDB=redis database)、增量請求(aof=append only file)。

前者是將內(nèi)存中的數(shù)據(jù)寫進磁盤,便于下次讀取文件時直接進行加載,快照形式;

后者是將redis執(zhí)行的指令記錄下來,重啟時再執(zhí)行一遍,類似于binlog存儲;

兩種方式可以同時用,此時重啟,會優(yōu)先采用AOF進行恢復(fù);

兩種方式都不用,redis就變成了內(nèi)存數(shù)據(jù)庫,像memcache;

redis 的存儲:內(nèi)存存儲、磁盤存儲、log文件三部分

 安 裝

首先wget下載源碼包,https://code.google.com/archive/p/redis/downloads

舉例:wget https://codeload.github.com/antirez/redis/tar.gz/2.8.21

解壓:tar zxvf 2.8.21 && cd redis-2.8.21 

yum install -y gcc epel-release; yum install -y jemalloc-devel  //make 之前安裝些工具

編譯:make   //因為makefile已經(jīng)寫好,不需要再編譯,直接make就好

NoSQL -- redis 安裝 主從 配置詳解 常用命令

error:如果make出現(xiàn)錯誤,提示找不到一些東西   #我用的centos7,倒是沒出現(xiàn)錯誤

解決:cd deps && make hiredis lua jemalloc linenoise && cd ../ && make

安裝:make PREFIX=/usr/local/redis install  //為方便管理,指定了下目錄

創(chuàng)建:mkdir /usr/local/redis/etc && /usr/local/redis/var

wget http://www.apelearn.com/study_v2/.redis_init -O /etc/init.d/redis  //老師的啟動腳本

用戶:useradd -s /sbin/nologin redis

權(quán)限:chmod 777 /usr/local/redis/var && chmod 755 /etc/init.d/redis

自啟:chkconfig --add redis && chkconfig redis on && service redis start

數(shù)據(jù)類型

string:可以理解為memcache一樣類型,一個key對應(yīng)一個value,功能比mem豐富,最簡單類型;

set:集合,常見于取交并差集,比如微博中的共同關(guān)注人、共同粉絲,qq的好友標(biāo)簽等功能;

lists:鏈表結(jié)構(gòu),功能push、pop、獲取范圍等,輕松實現(xiàn)排行等功能;

hash:哈希,mem中將結(jié)構(gòu)化信息打包成hashmap,序列化后存儲在一個字符中,比如年齡性別等;

sorted set:有序集合,比set多了權(quán)重參數(shù)score,使其能按score進行排列,插入時也有順序;

配 置 文 件

###通用配置 daemonize no            #默認情況下,redis并不是以daemon形式來運行的。 pidfile /path/to/redis.pid     #當(dāng)以daemon形式運行時,指向生成的pid文件 bind 192.168.1.2 10.8.4.2     #指定綁定的ip,可以有多個,空格分隔 port 6379              #指定監(jiān)聽端口 unixsocket /tmp/redis.sock     #也可以監(jiān)聽socket unixsocketperm 755         #當(dāng)監(jiān)聽socket時可以指定權(quán)限為755 timeout 0              #客戶端時間內(nèi)沒向服務(wù)端發(fā)請求,服務(wù)端通過此值關(guān)閉連接,0表示永不關(guān)閉 tcp-keepalive 0           #TCP連接保活策略,檢測客戶端對否掛掉,0表示不開啟 loglevel notice           #日志級別,有四種debug, verbose, notice, warning logfile “”            #定義日志路徑,“”表示默認 syslog-ident redis         #通過syslog-enabled來控制打印到syslog,此值指定syslog里的日志標(biāo)志 syslog-facility local0       #指定syslog的設(shè)備,可以是USER或者local0-local7 databases 16            #設(shè)置數(shù)據(jù)庫的總數(shù)量 ###快照配置 save 900 1                  #表示每15分鐘且至少有1個key改變,就觸發(fā)一次持久化  save 300 10                  #表示每5分鐘且至少有10個key改變,就觸發(fā)一次持久化 save 60 10000                  #表示每60秒至少有10000個key改變,就觸發(fā)一次持久 save “”                    #這樣可以禁用rdb持久化 stop-writes-on-bgsave-error yes   #寫入磁盤失敗后,馬上停止寫操作 rdbcompression yes           #是否要壓縮 rdbchecksum yes             #是否進行數(shù)據(jù)校驗 dbfilename dump.rdb            #定義快照文件的名字 dir /usr/local/redis         #定義快照文件儲存路勁 ###安全相關(guān)配置 requirepass teng            #設(shè)置redis-server的密碼   ##測試:redis-cli  && get key1  重啟后:redis-cli -a teng  &&  get key1 會不一樣輸出 rename-command CONFIG  teng.config      ##將CONFIG命令更名為teng.config,避免誤操作,但如果使用了AOF持久化,建議不要啟用該功能 rename-command CONFIG “”      #也可以后面定義為空,這樣就禁掉了該CONFIG命令 ###限制相關(guān)配置 maxclients 10000            #限制大客戶端連接數(shù) maxmemory <bytes>           #設(shè)定大內(nèi)存使用數(shù),單位是byte maxmemory-policy volatile-lru     #指定內(nèi)存移除規(guī)則 maxmemory-samples 3          #LRU和TTL算法都是估算值。所以你可以設(shè)置樣本的大小。                     #快照key觸發(fā),那么你可以改變這個key樣本的數(shù)量。 ###AOF持久化 appendonly no             #如果是no,則開啟aof持久化 appendfilename “apponly.aof”      #指定aof文件名字 appendfsync everysec          #三種模式,最快 no(不調(diào)用fsync),最安全always(每次寫都會                      #調(diào)用fsync),默認everysec(每秒鐘調(diào)用一次fsync)。 no-appendfsync-on-rewrite no      # 設(shè)置yes,可避免當(dāng)寫入量非常大時的磁盤io阻塞 auto-aof-rewrite-percentage 10    #10==當(dāng)aof文件增幅達到10%時則會觸發(fā)重寫機制 uto-aof-rewrite-min-size 64mb       #重寫會有一個條件,就是不能低于64Mb ###慢日志相關(guān) slowlog-log-slower-than 10000        #慢于10000ms則記錄日志 slowlog-max-len 128          #日志長度,大于128時刪除最老的日志### 線 上 舉 例 ##### daemonize yes pidfile /usr/local/redis/var/redis.pid port 6379 timeout 300 loglevel debug logfile /usr/local/redis/var/redis.log databases 16 save 900 1 save 300 10 save 60 10000 rdbcompression yes dbfilename dump.rdb dir /usr/local/redis/var/ appendonly no appendfsync always

 主 從 同 步

主 master192.168.1.1
從 slave192.168.1.2

按上述方式安裝redis并啟動,master配置文件不動,slave配置文件加下行:

slaveof 192.168.1.1 6379  //主的ip和端口

masterauth passwd     //如果主上設(shè)置了密碼,要加這一行

重啟測試:

master >> redis-cli set key0 1 && redis-cli get key0 == 輸出1

slave >> redis-cli get key0 == 輸出1

slave-read-only yes       # 讓從只讀 repl-ping-slave-period 10   # 設(shè)置slave向master發(fā)起ping的頻率,每10s發(fā)起一次 repl-timeout 60              # 設(shè)置slave ping不通master多少s后就超時 repl-disable-tcp-nodelay no  # 開啟后將會使用更少的帶寬,但會有延遲,建議關(guān)閉 repl-backlog-size 1mb      # 主從斷開后,主先把數(shù)據(jù)寫到緩沖區(qū)backuplog,再次連接從中讀取數(shù)據(jù) repl-backlog-ttl 3600        # 主從斷開后,緩沖區(qū)的有效期,默認1小時 slave-priority 100          # 多個slave設(shè)置優(yōu)先級,數(shù)值越小優(yōu)先級越高,應(yīng)用于集群中, min-slaves-to-write 3       # 和下面的一起使用,主發(fā)現(xiàn)有超過3個slave的延遲高于10s, min-slaves-max-lag 10        #那么主就會暫停寫操作。這兩個數(shù)值任何一個為0,則關(guān)閉該功能

 常 用 命 令

string:

set key1 teng   // set賦值

set key1 teng   // 一個key對應(yīng)一個value,多次賦值,會覆蓋前面的value

get key1      // get取值

setnx key2 aaa   // 返回1,get key2查看

setnx key2 bbb   // 返回0,如果存在key,返回0,不會創(chuàng)建

setex key3  10  1   // 這個是用來給key設(shè)定過期時間的  查看時間ttl key3

mset  key1 1  key2 2 c 3  // 同時設(shè)置多個key

mget key1 key2 c

Hash:

hset user1  name teng   //建立hash,可以存儲用戶名字性別年齡等多個信息
hset user1 age 24
hset user1 job  it
hgetall user1   //獲取所有值

hmset user2  name teng age 24 job it   //批量建立鍵值對
hmget user2   //獲取所有值
hmget user2 name age  //獲取指定值

hdel user2 job  //刪除指定filed
hkeys user2   //打印所有的key
hvals user2   //打印所有的values
hlen user2    //查看hash有幾個filed(鍵),返回數(shù)字

lists:
lpush lista  a   //從左側(cè)壓入一個元素
lpush lista b

rpush lista  1   //從右側(cè)壓入一個元素
rpush lista  2

lpop lista   //從左側(cè)取出,默認左第一個,取出之后此值就不存在了
rpop lista   //從右側(cè)取第一個元素

lrange lista  0 -1   //0 為頭 左側(cè)第一個,-1為尾 右側(cè)第一個,沒有rrange

linsert  lista  before  2 3   //在元素的值2的前面插入一個元素為3
lset lista 4 bbb   //把第5個元素修改為bbb

lindex lista 0    //查看第1個元素,,數(shù)字為索引
lindex lista 3    //查看第4個元素
llen lista     //查看鏈表中有幾個元素

set:

sadd seta aaa   //向集合seta中放入元素
smembers seta   //查看集合中的所有元素
srem seta aaa   //刪除元素
spop  seta   //隨機取出一個元素,刪除

sdiff  seta  setb   //求差集,以seta為標(biāo)準(zhǔn)

sinter seta setb   //求交集

sunion seta setb  //求并集

sdiffstore setc seta setb      //求差集,并存儲到了setc,查看 SMEMBMERS setc
sinterstore  setd seta setb   //求交集,并存儲setd ,查看 SMEMBMERS setd
sunionstore sete seta setb   //求并集,并存儲到sete

sismember seta aaa   //判斷一個元素是否屬于一個集合
srandmember  seta   //隨機取出一個元素,但不刪除

zset:

zadd zseta 11 123   //創(chuàng)建有序集合,大寫ZADD   等命令的可以tab補全

zrange zseta 0 -1   //顯示所有元素,按順序顯示

zrange zseta 0 -1 withscores //可以帶上分值

zrangebyscore zseta 1 10  // 返回分值范圍1-10的元素

zrank zseta 222   //返回元素的索引值,索引值從0開始,按score正向排序

zrevrank zseta 222   //同上,不同的是,按score反序排序

zrevrange zseta 0 -1  //反序顯示所有元素,并帶分值

zcard zseta   //返回集合中所有元素的個數(shù)

zcount zseta 1 10   // 返回分值范圍1-10的元素個數(shù)

zrem zseta 222   //刪除指定元素

zremrangebyrank zseta 0 2   //刪除索引范圍0-2的元素,按score正向排序

zremrangebyscore zseta 1 10   //刪除分值范圍1-10的元素

鍵值相關(guān):

keys *     //取出所有key

keys m*     //模糊匹配

EXPIRE key1 100 //設(shè)置key1 100s后過期

del key1   // 刪除一個key ,成功返回1 ,否則返回0;

ttl key    // 查看鍵 還有多長時間過期,單位是s,-2便是key不存在,-1沒設(shè)生存時間

select 0   //代表選擇當(dāng)前數(shù)據(jù)庫,默認進入0 數(shù)據(jù)庫

exists name  //有name鍵 返回1 ,否則返回0;

move age 1   // 把age 移動到1 數(shù)據(jù)庫
persist key1  //取消key1的過期時間
randomkey   //隨機返回一個key

type key1   //返回鍵的類型

rename oldname newname //重命名key

info   //返回redis數(shù)據(jù)庫狀態(tài)信息

dbsize  //返回當(dāng)前數(shù)據(jù)庫中key的數(shù)目

flushdb  //清空當(dāng)前數(shù)據(jù)庫中所有的鍵
flushall //清空所有數(shù)據(jù)庫中的所有的key
-------------------------------------------------------------------------------------------------

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站題目:NoSQL--redis安裝主從配置詳解常用命令-創(chuàng)新互聯(lián)
本文路徑:http://bm7419.com/article36/dpdisg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站設(shè)計公司、關(guān)鍵詞優(yōu)化搜索引擎優(yōu)化、網(wǎng)站收錄、網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)