欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Redis緩存數(shù)據(jù)庫的安裝配置和使用

redis 的簡介

創(chuàng)新互聯(lián)長期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為中寧企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè),中寧網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

Redis 是完全開源免費的,遵守BSD協(xié)議,是一個高性能的key-value數(shù)據(jù)庫。

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

Redis支持數(shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時候可以再次加載進行使用。

Redis不僅僅支持簡單的key-value類型的數(shù)據(jù),同時還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲。

Redis支持數(shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。

Redis 優(yōu)勢

性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。

豐富的數(shù)據(jù)類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數(shù)據(jù)類型操作。

原子 – Redis的所有操作都是原子性的,意思就是要么成功執(zhí)行要么失敗完全不執(zhí)行。單個操作是原子性的。多個操作也支持事務(wù),即原子性,通過MULTI和EXEC指令包起來。

豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性。

關(guān)系型數(shù)據(jù)庫與非關(guān)系型數(shù)據(jù)庫

關(guān)系型數(shù)據(jù)庫:

一個機構(gòu)化的數(shù)據(jù)庫,創(chuàng)建在關(guān)系模型基礎(chǔ)上,一般面向于記錄
包括oracle、MySQL、sqlserver、db2

非關(guān)系型數(shù)據(jù)庫:

除了主流的關(guān)系型數(shù)據(jù)庫意外的數(shù)據(jù)庫,都人為是非關(guān)系型的
包括redis、mongdb、hbase、couhdb

非關(guān)系型數(shù)據(jù)庫產(chǎn)生背景

對數(shù)據(jù)庫高并發(fā)讀寫需求
對海量數(shù)據(jù)高效存儲與訪問需求
對數(shù)據(jù)庫高可擴展性與高可用需求

安裝與配置Redis

安裝必要的環(huán)境組件,并安裝redis

[root@localhost ~]# yum install gcc gcc-c++ make -y  ##安裝環(huán)境組件
[root@localhost ~]# mkdir /mnt/tools
[root@localhost ~]# mount.cifs //192.168.100.100/tools /mnt/tools/  ##掛載
Password for root@//192.168.100.100/tools:  
[root@localhost ~]# cd /mnt/tools/redis/
[root@localhost redis]# ls
redis-5.0.7.tar.gz
[root@localhost redis]# tar xf redis-5.0.7.tar.gz -C /opt/   ##解壓
[root@localhost redis]# cd /opt/
[root@localhost opt]# ls
redis-5.0.7  rh
[root@localhost opt]# cd redis-5.0.7/
[root@localhost redis-5.0.7]# make   #編譯
..........//省略過程
[root@localhost redis-5.0.7]# make PREFIX=/usr/local/redis/ install   ##安裝
..........//省略過程

執(zhí)行配置Redis配置文件腳本,并進行配置

[root@localhost redis-5.0.7]# cd utils/
[root@localhost utils]# ./install_server.sh    ##執(zhí)行腳本進行配置
Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379]   ##默認端口
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]   ##配置文件
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]   ##日志文件
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]   ##數(shù)據(jù)文件
Selected default - /var/lib/redis/6379
Please select the redis executable path [] /usr/local/redis/bin/redis-server
##可執(zhí)行文件路徑
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/redis/bin/redis-server
Cli Executable : /usr/local/redis/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!
[root@localhost utils]# ln -s /usr/local/redis/bin/ /usr/local/bin/   ##便于系統(tǒng)識別
[root@localhost utils]# netstat -ntap | grep 6379    ##查看監(jiān)聽端口
tcp        0      0 127.0.0.1:6379          0.0.0.0:
              LISTEN      18004/redis-server  
[root@localhost utils]# /etc/init.d/redis_6379 stop  ##關(guān)閉redis
Stopping ...
Redis stopped
[root@localhost utils]# netstat -ntap | grep 6379   ##查看監(jiān)聽端口
tcp        0      0 127.0.0.1:6379          127.0.0.1:33970         TIME_WAIT   -  
[root@localhost utils]# /etc/init.d/redis_6379 start  ##開啟redis
Starting Redis server...
[root@localhost utils]# netstat -ntap | grep 6379
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      18091/redis-server  
tcp        0      0 127.0.0.1:6379          127.0.0.1:33970         TIME_WAIT   -                  
[root@localhost utils]#
[root@localhost utils]# vim /etc/redis/6379.conf   ##修改配置文件
bind 127.0.0.1 192.168.52.149  ##設(shè)置監(jiān)聽地址
[root@localhost utils]# /etc/init.d/redis_6379 restart  ##重啟redis服務(wù)
Stopping ...
Redis stopped
Starting Redis server...

###Redis數(shù)據(jù)庫基礎(chǔ)操作

[root@localhost utils]# redis-cli -h 192.168.52.149 -p 6379   ##登錄redis
192.168.52.149:6379> help @list    ##獲取幫助列表

BLPOP key [key ...] timeout
summary: Remove and get the first element in a list, or block until one is available
since: 2.0.0
...............................//省略部分內(nèi)容
RPUSHX key value
summary: Append a value to a list, only if the list exists
since: 2.2.0
192.168.52.149:6379> help set  ##help幫助

SET key value [expiration EX seconds|PX milliseconds] [NX|XX]
summary: Set the string value of a key
since: 1.0.0
group: string

192.168.52.149:6379> set name zhangsan   ##設(shè)置鍵值對
OK
192.168.52.149:6379> set net www
OK
192.168.52.149:6379> KEYS   ##查看所有的鍵
1) "name"
2) "net"
192.168.52.149:6379> KEYS n??  ##查看鍵是n開頭后面是兩個字符的
1) "net"
192.168.52.149:6379> KEYS n
  ##查看鍵是n開頭的
1) "name"
2) "net"
192.168.52.149:6379> GET net   ##查看鍵的值
"www"
192.168.52.149:6379> EXISTS net  ##查看鍵是否存在
(integer) 1     ##1是存在,0是不存在
192.168.52.149:6379> EXISTS nat
(integer) 0
192.168.52.149:6379> del net  ##刪除鍵
(integer) 1
192.168.52.149:6379> KEYS
1) "name"
192.168.52.149:6379> type name   ##查看鍵的類型
string
192.168.52.149:6379> rename name n1   ##給鍵重命名
OK
192.168.52.149:6379> KEYS

1) "n1"
192.168.52.149:6379> get n1
"zhangsan"
192.168.52.149:6379> hset person score 80    ##用hash方式建立鍵值對
(integer) 1
192.168.52.149:6379> hset person name zhangsan   ##用hash方式建立鍵值對
(integer) 1
192.168.52.149:6379> hset person age 30   ##用hash方式建立鍵值對
(integer) 1
192.168.52.1490:6379> KEYS
1) "person"
192.168.52.149:6379> hget person name   ##獲取鍵的值
"zhangsan"
192.168.52.149:6379> hget person age   ##獲取鍵的值
"30"
192.168.52.149:6379> set name lisi   ##獲取鍵的值
OK
192.168.52.149:6379> KEYS

1) "name"
2) "person"
192.168.52.149:6379> EXPIRE name 10   ##設(shè)置鍵的自動刪除時間10s
(integer) 1
192.168.52.149:6379> KEYS    ##10s內(nèi)查看所有鍵
1) "name"
2) "person"
192.168.52.149:6379> KEYS
  ##10s后查看所有鍵
1) "person"
192.168.52.149:6379> exit   ##退出

進行壓測

[root@localhost utils]# redis-benchmark -h 192.168.52.149 -p 6379 -c 100 -n 100000
##并發(fā)100,100000個請求
====== SET ======
100000 requests completed in 1.14 seconds   ##請求花費的時間
100 parallel clients
3 bytes payload
keep alive: 1

84.66% <= 1 milliseconds
98.48% <= 2 milliseconds
99.69% <= 3 milliseconds
99.90% <= 18 milliseconds
100.00% <= 18 milliseconds
87642.41 requests per second

====== GET ======
100000 requests completed in 1.13 seconds
100 parallel clients
3 bytes payload
keep alive: 1
[root@localhost utils]# redis-benchmark -h 192.168.52.149 -p 6379 -q -d 100
##以字節(jié)形式指定set/get值的數(shù)據(jù)大小
SET: 90497.73 requests per second
GET: 90991.81 requests per second

移動鍵值對到其他的庫中(一共16個庫)

[root@localhost utils]# redis-cli -h 192.168.52.149 -p 6379         ##進入Redis            
192.168.52.149:6379> KEYS
1) "mylist"
2) "counter:rand_int"
3) "n1"
4) "key:
rand_int
"
5) "myset:__rand_int__"
192.168.52.149:6379> SELECT 10  ##進入第11個庫
OK
192.168.52.149:6379[10]> KEYS

(empty list or set)
192.168.52.149:6379[10]> SELECT 0  ##進入第1個庫
OK
192.168.52.149:6379> MOVE n1 10  ##移動鍵值對到第11個庫
(integer) 1
192.168.52.149:6379> KEYS
1) "mylist"
2) "counter:rand_int"
3) "key:
rand_int
"
4) "myset:__rand_int__"
192.168.52.149:6379> SELECT 10  ##進入第11個庫
OK
192.168.52.149:6379[10]> KEYS
  ## 查看鍵
1) "n1"
192.168.52.149:6379[10]> GET n1
"zhangsan"
192.168.52.149:6379[10]> FLUSHDB  ##清除庫中數(shù)據(jù)
OK
192.168.52.149:6379[10]> KEYS     ##查看所有鍵
(empty list or set)
192.168.52.149:6379[10]> SELECT 0   ##切換到第一個庫
OK
192.168.52.149:6379>KEYS
     ##查看所有的鍵
1) "myset:rand_int"
2) "mylist"
3) "key:
rand_int
"
4) "counter:__rand_int__"
192.168.52.149:6379> exit
[root@localhost utils]#

Redis持久化

Redis是運行在內(nèi)存中,內(nèi)存中的數(shù)據(jù)斷電丟失
為了能后重用Redis數(shù)據(jù),或者防止系統(tǒng)故障,我們需要將Redis中的數(shù)據(jù)寫入到磁盤空間中,即持久化

持久化分類

RDB方式:創(chuàng)建快照的方式獲取某一時刻Redis中所有數(shù)據(jù)的副本
AOF方式:將執(zhí)行的寫命令寫到文件的末尾,以日志的方式來記錄數(shù)據(jù)的變化

RDB持久化

Redis的默認持久化方式
默認文件名dump.rdb

觸發(fā)條件:

在指定的時間間隔內(nèi),執(zhí)行指定次數(shù)的寫操作(配置文件控制)
執(zhí)行save或者是bgsave(異步)命令
執(zhí)行flushall命令,清空數(shù)據(jù)庫所有數(shù)據(jù)
執(zhí)行shutdown命令,保證服務(wù)器正常關(guān)閉且不丟失任何數(shù)據(jù)

優(yōu)缺點:

適合大規(guī)模的數(shù)據(jù)恢復(fù)
如果業(yè)務(wù)對數(shù)據(jù)完整性和一致性要求不高,RDB是很好的選擇
數(shù)據(jù)的完整性和一致性不高
備份時占用內(nèi)存

配置RDB持久化

[root@localhost utils]# vim /etc/redis/6379.conf

#900秒之內(nèi)至少一次寫操作
save 900 1

#300秒之內(nèi)至少發(fā)生10次寫操作
save 300 10

#60秒之內(nèi)發(fā)生至少10000次寫操作
save 60 10000

#只要滿足其一都會觸發(fā)快照操作,注釋所有的save項表示關(guān)閉RDB

#RDB文件名稱
dbfilename dump.rdb

#RDB文件路徑
dir /var/lib/redis/6379

#開啟壓縮功能
rdbcompression yes

AOF持久化

Redis默認不開啟
彌補RDB的不足(數(shù)據(jù)的不一致性)
采用日志的形式來記錄每個寫操作,并追加到文件中
Redis重啟會根據(jù)日志文件的內(nèi)容將寫指令從前到后執(zhí)行一次以完成數(shù)據(jù)的恢復(fù)工作

AOF持久化配置

[root@localhost utils]# vim /etc/redis/6379.conf

#開啟AOF持久化
appendonly yes

#AOF文件名稱
appendfilename "appendonly.aof"

#always:同步持久化,每次發(fā)生數(shù)據(jù)變化會立刻寫入磁盤

#everysec:默認推薦,每秒異步記錄次(默認值)
appendfsync everysec

#no:不同步,交給操作系統(tǒng)決定如何同步

#忽略最后一條可能存在問題的指令
aof-load-truncated yes

AOF的重寫機制

AOF的工作原理是將寫操作追加到文件中,文件的冗余內(nèi)容會越來越多
當AOF文件的大小超過所設(shè)定的閥值時,Redis就會對AOF文件的內(nèi)容壓縮

AOF重寫配置

[root@localhost utils]# vim /etc/redis/6379.conf
#在日志進行BGREWRITEAOF時, 如果設(shè)置為yes表示新寫操作不進行同步fsync,
#只暫存在緩沖區(qū)里,避免造成磁盤I0操作沖突,等重寫完成后在寫入。redis中默認為no
no-appendfsync-on-rewrite no

#當前AOF文件大小是上次日志重寫時AOF文件大小兩倍時,發(fā)生BGREWRITEAOF操作
auto-aof-rewrite-percentage 100

#當前AOF文件執(zhí)行BGREWRITEAOF命令的最小值,
#避免剛開始啟動Reids時由于文件尺寸較小導(dǎo)致頻繁的BGREWRITEAOF
auto-aof-rewrite-min-size 64mb

內(nèi)存碎片率

●操系統(tǒng)分配的內(nèi)存值used_ memory rss除以redis使用的內(nèi)存值
used _memory計算得出
●內(nèi)存碎片是由操作系統(tǒng)低效的分配/回收物理內(nèi)存導(dǎo)致的
不連續(xù)的物理內(nèi)存分配
●跟蹤內(nèi)存碎片率對理解redis實例的資源性能是非常重要的
內(nèi)存碎片率稍大于1是合理的,這個值表示內(nèi)存碎片率比較低
內(nèi)存碎片率超過1.5,說明redis消耗了實際需要物理內(nèi)存的150%,其中50%是內(nèi)存碎片率
內(nèi)存碎片率低于1的,說明Redis內(nèi)存分配超出了物理內(nèi)存,操作系統(tǒng)正在進行內(nèi)存交換

回收key

保證合理分配redis有限的內(nèi)存資源
●當內(nèi)存使用達到設(shè)置的最大閥值時,需要選擇一種key的回收策略
默認情況下回收策略是禁止刪除
redis.conf配置文件中修改maxmemory-policy屬性值
volatile-lru:使用LRU算法從已設(shè)置過期時間的數(shù)據(jù)集合中淘汰數(shù)據(jù)
volatile-ttl:從已設(shè)置過期時間的數(shù)據(jù)集合中挑選即將過期的數(shù)據(jù)淘汰(建議使用)
volatile-random:從已設(shè)置過期時間的數(shù)據(jù)集合中隨機挑選數(shù)據(jù)淘汰
allkeys-lru:使用LRU算法從所有數(shù)據(jù)集合中淘汰數(shù)據(jù)
allkeys-random:從數(shù)據(jù)集合中任意選擇數(shù)據(jù)淘汰
no-enviction:禁止淘汰數(shù)據(jù)

當前名稱:Redis緩存數(shù)據(jù)庫的安裝配置和使用
網(wǎng)站路徑:http://aaarwkj.com/article0/gpjdio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、電子商務(wù)虛擬主機、移動網(wǎng)站建設(shè)、網(wǎng)站收錄面包屑導(dǎo)航

廣告

聲明:本網(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)

外貿(mào)網(wǎng)站制作
韩国av高清在线观看| 国产第一页国产第一页| 日本91免费在线观看| 久久亚洲中文字幕精品一区四区| 精品国产免费第一区二区三| 欧美国内日本一区二区| 中国吞精囗交免费视频| 亚欧熟女乱色一二三区日韩| 青青草成人一区二区三区| 一级片高清在线观看国产| 久久亚洲精品中文字幕一| 久久热最新免费观看视频| 久久九特黄的免费大片| 精品国产美女主播在线| 久久久久久精品人妻网| 高清不卡日本一区二区| 婷婷激情六月中文字幕| 国产欧美亚洲精品一区二区| 亚洲天堂岛av一区二区| 98热这里只有精品视频| 乱码日本欧美一区二区| 亚洲香蕉视频在线播放| 国产美女无遮挡免费网站| 久久国产亚洲精品赲碰热| 欧美一区二区精品少妇| 九九九视频在线观看免费| 国产伦人偷精品免费视频| 国产精品乱人偷免费视频| 四虎精品国产一区二区三区| 精品国产无遮挡污污网站| av天堂午夜精品蜜臀| 亚洲国产自拍精品视频| 国产91黑丝在线视频| 久久最新最热视频精品| 国产日韩欧美 一区二区三区| 亚洲热久久国产经典视频| 亚洲天堂av成人在线观看| 草逼免费在线观看视频| 超碰欧美黄色免费在线| 欧美一区二区久久综合| 亚洲日本韩国一区二区|