国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Redis使用詳細(xì)教程

2019-11-08 20:39:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Redis使用詳細(xì)教程

一、Redis基礎(chǔ)部分: 

1、redis介紹與安裝比MySQL快10倍以上 

*****************redis適用場(chǎng)合****************

1.取最新N個(gè)數(shù)據(jù)的操作

2.排行榜應(yīng)用,取TOP N 操作

3.需要精確設(shè)定過(guò)期時(shí)間的應(yīng)用

4.計(jì)數(shù)器應(yīng)用

5.Uniq操作,獲取某段時(shí)間所有數(shù)據(jù)排重值

6.實(shí)時(shí)系統(tǒng),反垃圾系統(tǒng)7.Pub/Sub構(gòu)建實(shí)時(shí)消息系統(tǒng)

7.Pub/Sub構(gòu)建實(shí)時(shí)消息系統(tǒng)8.構(gòu)建隊(duì)列系統(tǒng)

9.緩存

=============================================

SET操作每秒鐘 110000 次,GET操作每秒鐘 81000 次,服務(wù)器配置如下:

linux 2.6, Xeon X3320 2.5Ghz.

stackoverflow 網(wǎng)站使用 Redis 做為緩存服務(wù)器。

同時(shí)也會(huì)將數(shù)據(jù)寫(xiě)到硬盤(pán)上。所以數(shù)據(jù)是安全的(除突然斷電外,重啟服務(wù)會(huì)寫(xiě)到dump.rdb文件中)

 

1.安裝: 

tar zxvf redis-2.6.9.tar.gz

cd redis-2.6.9

make

cd src && make install

2.移動(dòng)配置文件位置(為了便于管理)

cd /usr/local/

mkdir -p /usr/local/redis/bin

mkdir -p /usr/local/redis/etc

mv /lamp/redis-2.6.9/redis.conf /usr/local/redis/etc

cd /lamp/redis-2.6.9/src

mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin

3.修改配置文件 

vi /usr/local/redis/etc/redis.conf

 

一、將daemonize no 中no改為yes[yes指后臺(tái)運(yùn)行]

4.啟動(dòng)/隨機(jī)啟動(dòng):

cd /usr/local/redis/bin

./redis-server /usr/local/redis/etc/redis.conf#啟動(dòng)redis并指定配置文件。

#vi /etc/rc.local #設(shè)置隨機(jī)啟動(dòng)。

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

5.查看是否啟動(dòng)成功 

ps -ef | grep redis

netstat -tunpl | grep 6379#查看端口是否占用。

6.進(jìn)入客戶端/退出 

cd /usr/local/redis/bin

./redis-cli#進(jìn)入

quit#退出

7.關(guān)閉redis  

pkill redis-server#關(guān)閉

./redis-cli shutdown#關(guān)閉

************************************Redis安全************************************

 

Redis的安全性???(由以下4種方式)

1.用ACL控制器安全性。

2.在redis.conf配置文件增加下面這一行配置,即可把redis綁定在單個(gè)接口上(但并不是只有接受這個(gè)網(wǎng)卡的數(shù)據(jù))。

bind 127.0.0.1

3.給redis加上較長(zhǎng)密碼(無(wú)需要記住)

4.在redis.conf配置啟用認(rèn)證功能。

5.SSL代理

6.禁用指定命令。

************************************** Redis配置 **********************************************

daemonize    如果需要在后臺(tái)運(yùn)行,把該項(xiàng)改為yes  

pidfile      配置多個(gè)pid的地址 默認(rèn)在/var/run/redis.pid

bind 綁定ip,設(shè)置后只接受來(lái)自該ip的請(qǐng)求

port 監(jiān)聽(tīng)端口,默認(rèn)為6379

timeout      設(shè)置客戶端連接時(shí)的超時(shí)時(shí)間,單位為秒

loglevel     分為4級(jí),debug、verbose、notice、warning

logfile      配置log文件地址

databases    設(shè)置數(shù)據(jù)庫(kù)的個(gè)數(shù),默認(rèn)使用的數(shù)據(jù)庫(kù)為0

save         設(shè)置redis進(jìn)行數(shù)據(jù)庫(kù)鏡像的頻率

rdbcomPRession    在進(jìn)行鏡像備份時(shí),是否進(jìn)行壓縮

Dbfilename        鏡像備份文件的文件名

Dir   數(shù)據(jù)庫(kù)鏡像備份的文件放置路徑

Slaveof     設(shè)置數(shù)據(jù)庫(kù)為其他數(shù)據(jù)庫(kù)的從數(shù)據(jù)庫(kù)

Masterauth 主數(shù)據(jù)庫(kù)連接需要的密碼驗(yàn)證

Requirepass     設(shè)置登錄時(shí)需要使用的密碼

Maxclients 限制同時(shí)連接的客戶數(shù)量

Maxmemory 設(shè)置redis能夠使用的最大內(nèi)存

Appendonly 開(kāi)啟append only模式

以下了解即可:

Appendfsync 設(shè)置對(duì)appendonly.aof文件同步的頻率

vm-enabled 是否開(kāi)啟虛擬內(nèi)存支持

vm-swap-file 設(shè)置虛擬內(nèi)存的交換文件路徑

vm-max-memory 設(shè)置redis使用的最大物理內(nèi)存大小

vm-page-size 設(shè)置虛擬內(nèi)存的頁(yè)大小

vm-pages 設(shè)置交換文件的總的page數(shù)量

vm-max-threads 設(shè)置VM IO同時(shí)使用的線程數(shù)量

Glueoutputbuf 把小的輸出緩存存放在一起

hash-max-zipmap-entries 設(shè)置hash的臨界值

Activerehashing 重新hash

*******************************************************************

5種數(shù)據(jù)類(lèi)型:字符串、哈希、鏈表、集合、有序集合。

支持:push/pop、add/remove 、取交集、并集、差集、排序。

redis<===同步====>mysql

同時(shí)也會(huì)將數(shù)據(jù)寫(xiě)到硬盤(pán)上。所以數(shù)據(jù)是安全的(除突然斷電外,重啟服務(wù)會(huì)寫(xiě)到dump.rdb文件中)

*******************************************************************

select num#選擇庫(kù),默認(rèn)在0庫(kù),共16個(gè)庫(kù)

auth liweijie#授權(quán)用戶所需密碼(密碼就是redis.conf中配置的密碼)

flushdb#清空數(shù)據(jù)庫(kù)。

String(字符串)類(lèi)型: 

set name lijie#設(shè)置鍵name的值為lijie

get name#獲取name的值。

keys *#查詢(xún)所有的鍵。

setnx name liweijie#如果鍵已存在則返回0,不更新,防止覆蓋。

setex haircolor 10 red #設(shè)置鍵的值的有效期為10秒。

setrange email 6 lampbre.com#替換鍵的值從第6個(gè)字符開(kāi)始換為lampbre.com

mset name1 李大偉 name2 李小偉#設(shè)置多個(gè)鍵的值。

msetnxname1 張三 name3 李四#判斷鍵是否存在,不存在則設(shè)置,否則不設(shè)置返回0

mget name1 name2 name3#一次獲取多個(gè)鍵的值。

getset name1 Tom#重新設(shè)置鍵的值,并返回舊的鍵值。

getrange email 6 18#截取email鍵的值,從第6-18位間的字符。

incr uid#每次自增1 (如果key中uid不存在,則設(shè)置并從0開(kāi)始,下同)

incrby uid 5#每次自增5 

incrby uid -5#每次自減5 

decr uid #每次自減1

decrby uid 5#每次自減5

appendname1 @126.com#給name1的值,添加字符串@126.com

strlenname1#返回鍵name1的值的長(zhǎng)度。

*************************************************************************

Hashes(哈希)類(lèi)型: 

hset user:001 name liweijie#哈希設(shè)置用戶user:001的name鍵值為liweijie

hset user:001 age 21#同樣,增加一個(gè)age鍵值為21

hsetnx user:001 age 22#同上,但檢測(cè)鍵是否存在。若不存在創(chuàng)建。

hmset user:002 name liweijie2 age 26 sex 1#同時(shí)設(shè)置多個(gè)鍵的值。

hget user:001 name#哈希獲取用戶user:001的name鍵的值。

hget user:001 age #同上。

hmget user:001 name age sex#獲取多個(gè)指定的鍵的值。

hgetall user:001#獲取所有鍵的值。

hincrbyuser:001 age -8#在指定鍵上加上給定的值。

hexists user:001 sex#檢測(cè)指定的鍵值是否存在。

hlen user:001#返回指定哈希的鍵個(gè)數(shù)/字段個(gè)數(shù)。

hdel user:001 sex#刪除指定(user:001)哈希的指定字段或是鍵值。

hkeys user:003#返回哈希里所有字段或是鍵值。

*********************************************************************

Lists(鏈表)類(lèi)型及操作(棧或隊(duì)列): 

lpush mylist "world"#從頭部插入字符串

lpush mylist "hello"#同上

lrange mylist 0 -1#獲取從0到最后一個(gè)如[1) "hello" 2) "world"]

rpush mylist "jiejie"#在尾部插入

linsert mylist before "hello" "this is linsert" #指定插入位置(在hello之前插入)。

lset mylist 0 "what"#設(shè)置修改指定下標(biāo)的值。

lrem mylist 1 "hello"#刪除(1個(gè))一個(gè)值為hello的元素。(n<0從尾部刪除,n=0全部刪除)

ltrim mylist 1 2 #保留表中下標(biāo)為1/2的元素。

lpop mylist#彈出開(kāi)頭元素并返回。

rpop mylist#彈出尾部元素并返回。

rpoplpush mylist mylist2 #從mylist尾部彈出插入到mylist2的頭部。

lindex mylist 0#獲取表下標(biāo)為0的元素值。

llen mylist#返回表元素個(gè)數(shù)(相當(dāng)于count($arr  ))。

*********************************************************************

sets(集合)類(lèi)型及操作(好友推薦、blog、tag功能): 

smembers myset#查看myset集合中所有元素值。

sadd myset "hello"#向mysets集合中添加一個(gè)值hello

srem myset "hello"#刪除myset集合中名稱(chēng)為hello的元素。

spop myset #隨機(jī)彈出并返回mysets中的一個(gè)元素。

sdiff myset2 myset3#返回myset2中的與myset3的差集(以myset2為準(zhǔn))。

sdiffstore myset4 myset2 myset3#返回myset2中的與myset3的差集,并存入myset4中去。

sinter myset2 myset3#返回myset2與myset3的交集。

sinterstore myset5 myset2 myset3#返回myset2與myset3的交集,并存入myset5中去。

sunion myset2 myset3#求并集(去重復(fù))

sunionstore myset6 myset2 myset3#求并集,并存入myset6中去。

smove myset2 myset3 "three"#將myset2中的three移到myset3中去。

scard myset2#返回元素個(gè)數(shù)。

sismember myset2 "one"#判斷元素one是不是myset2集合的(相當(dāng)于is_array())。

srandmember myset2#隨機(jī)返回myset2集合中的一個(gè)元素,但不刪除(相當(dāng)于array_rand())。

*********************************************************************

sorted sets(有序集合)類(lèi)型及操作(以scores排序): 

zadd myzset 1 "one"#向順序1的添加元素one

zadd myzset 2 "two"#同上。

zadd myzset 3 "two"#相當(dāng)于更新順序?yàn)?的值

zrange myzset 0 -1 withscores#查看所有元素并帶上排序(默認(rèn)升序)。

zrem myzset "two"#刪除two

zincrby myzset 2 "two"#將two的順序值加上2

zrank myzset "two"#返回集合中元素的索引下標(biāo)值。

zrevrank myzset two#元素反轉(zhuǎn)并返回新下標(biāo)值。

zrevrange myzset 0 -1 withscores#按順序反轉(zhuǎn)(相當(dāng)于降序排序)

zrangebyscore myzset 1 10 withscores#返回順序?yàn)?-10的元素(可做分頁(yè))。

zcount myzset 1 10 #返回順序在1-10之間元素的個(gè)數(shù)。

zcard myzset#返回集合中所有元素的個(gè)數(shù)。

zremrangebyrank myzset 1 2#刪除集合中下標(biāo)為1到2的元素。

zremrangebyscore myzset 1 10#刪除集合中順序?yàn)?到10的元素。

Redis常用命令  

鍵/值相關(guān)命令。

keys * #查詢(xún)所有

keys user*#查詢(xún)指定的

exists user:001#判斷是否存在。

del name#刪除指定的鍵。

expire addr 10#設(shè)置過(guò)期時(shí)間

ttl addr#查詢(xún)過(guò)期時(shí)間

select 0 #選擇數(shù)據(jù)庫(kù)

move age 1#將age移到1數(shù)據(jù)庫(kù)。

get age #獲取

persist age#移除age的過(guò)期時(shí)間。

randomkey#隨機(jī)返回一個(gè)key

rename name1 name2#重命名鍵

type myset#返回鍵的類(lèi)型。

ping #測(cè)試redis連接是否存活。

echo lamp#輸出一個(gè)lamp

select 10#選擇數(shù)據(jù)庫(kù)。

quit/exit/crtl+C#退出客戶端

dbsize#返回庫(kù)里的鍵的個(gè)數(shù)。

服務(wù)器相關(guān)命令:

info#顯示redis服務(wù)器的相關(guān)信息。

config get */loglevel #返回所有/指定的配置信息。

flushdb#刪除當(dāng)前庫(kù)中的所有鍵/表。

flushall#刪除所有數(shù)據(jù)庫(kù)中的所有鍵/表

 

二、Redis高級(jí)部分: 

1、Redis安全性:  

1.用ACL控制器安全性。

2.給redis加上較長(zhǎng)密碼 

# requirepass foobared 

requirepass beijing 

3.在redis.conf配置啟用認(rèn)證功能。

方式一:Auth beijing

方式二:./redis-cli -a beijing

4.在redis.conf配置文件增加下面這一行配置,即可把redis綁定在單個(gè)接口上(但并不是只有接受這個(gè)網(wǎng)卡的數(shù)據(jù))。

bind 127.0.0.1(單臺(tái)機(jī)器的時(shí)候可以配置,分布式或主從復(fù)制時(shí)最好不要配置)

5.SSL代理

6.禁用指定命令。

2、Redis主從復(fù)制:  

redis只需在從服務(wù)器(slave)上配置即可:

slaveof 211.122.11.11 6379 #指定master 的ip 和端口 

masterauth beijing#這是master主機(jī)的密碼 

Info#查看主/從服務(wù)器的狀態(tài)。

3、Redis事務(wù)處理:  

Redis事務(wù)很不完善。

4、Redis持久化機(jī)制:  

1.兩種方式:一、備份數(shù)據(jù)到磁盤(pán)(快照)[ snapshotting(快照)也是默認(rèn)方式]

   二、記錄操作命令[ Append-only file(縮寫(xiě)aof)的方式]

一、備份數(shù)據(jù)到磁盤(pán)(快照)[ snapshotting(快照)也是默認(rèn)方式] 

save 900 1 #900秒內(nèi)如果超過(guò)1個(gè)key被修改,則發(fā)起快照保存

save 300 10 #300秒內(nèi)容如超過(guò)10個(gè)key被修改,則發(fā)起快照保存

save 60 10000

二、記錄操作命令[ Append-only file(縮寫(xiě)aof)的方式](較安全持久化) 

appendonly yes #啟用aof 持久化方式 

# appendfsync always //收到寫(xiě)命令就立即寫(xiě)入磁盤(pán),最慢,但是保證完全的持久化 

appendfsync everysec //每秒鐘寫(xiě)入磁盤(pán)一次,在性能和持久化方面做了很好的折中

# appendfsync no //完全依賴(lài)os,性能最好,持久化沒(méi)保證


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 昭觉县| 若羌县| 大港区| 房产| 南昌市| 金塔县| 东辽县| 武冈市| 望奎县| 喀什市| 霞浦县| 大埔县| 会理县| 巩义市| 修武县| 濮阳市| 开封县| 顺平县| 溆浦县| 鄂托克前旗| 博白县| 新兴县| 香格里拉县| 宿迁市| 扎囊县| 辽阳县| 临湘市| 饶平县| 昌宁县| 喜德县| 滨州市| 安平县| 大厂| 武功县| 烟台市| 阿鲁科尔沁旗| 襄汾县| 绥滨县| 施甸县| 汝城县| 景洪市|