redis配置詳解

redis配置詳解

redis配置文件

redis配置文件在mac中的默認位置在/usr/local/etc/redis.conf创泄,可以在服務(wù)啟動時指定,也支持服務(wù)啟動后的動態(tài)修改啤月。配置項的內(nèi)容具體如下:

# *********************************常用配置*********************************

# 是否作為守護進程運行挂滓。當為yes時它會寫一個pid到/var/run/redis.pid文件里面
daemonize yes or no

# 當運行多個server實例的時候岖食,需要指定不同的pid文件和端口
pidfile /var/run/redis.pid
port 6379 # 默認端口號

# TCP監(jiān)聽的最大容納數(shù)量
tcp-backlog 511

# 綁定ip
bind 127.0.0.1 

# 客戶端和Redis服務(wù)端的連接超時時間(單位是秒),默認0代表永不超時
timeout 0

# socket心跳包(單位是秒)名船,默認0代表使用SO_KEEPALIVE方式檢測連接
tcp-keepalive 0

# 日志級別
# debug 開發(fā)or測試
# verbose
# notice 生產(chǎn)環(huán)境
# warning
loglevel notice

# 指定日志文件地址
logfile "/data/logs/redis/redis.log"

# 是否記錄到系統(tǒng)日志
syslog-enabled no

# 設(shè)置syslog的identity
# syslog-ident redis

# 可用數(shù)據(jù)庫數(shù)量绰上,默認16個,默認當前數(shù)據(jù)庫為0渠驼,范圍0到databases-1蜈块,可通過select num切換數(shù)據(jù)庫
databases 16

# *********************************快照*********************************

# 在n秒內(nèi)有m次改動就觸發(fā)保存動作,可以配置多個條件迷扇,關(guān)系相當于if百揭、else if
save 900 1
save 300 10
save 60 10000

# 當發(fā)生第一次寫保存失敗后是否強制關(guān)閉寫通道
# 這是強制通知用戶寫錯誤的方式,如果有靠譜的監(jiān)控蜓席,可以設(shè)置成no
stop-writes-on-bgsave-error yes

# 備份時是否進行數(shù)據(jù)壓縮
rdbcompression yes

# 讀寫時是否進行crc校驗
rdbchecksum yes

# 備份時的文件名
dbfilename dump.rdb

# 數(shù)據(jù)庫備份文件的位置
dir /data/data/redis/

# *********************************主從配置*********************************

# 設(shè)置該數(shù)據(jù)庫為其他數(shù)據(jù)庫的從數(shù)據(jù)庫器一,參數(shù)為主庫ip和端口
# slaveof <masterip> <masterport>

# 指定與主數(shù)據(jù)庫連接時需要的密碼驗證,本地為從庫時需要設(shè)置訪問主庫服務(wù)器的密碼
# masterauth <master-password>

# 當slave服務(wù)器和master服務(wù)器失去連接后厨内,或者當數(shù)據(jù)正在復(fù)制傳輸?shù)臅r候祈秕,如果此參數(shù)值設(shè)置“yes”,slave服務(wù)器可以繼續(xù)接受客戶端的請求雏胃,否則请毛,會返回給請求的客戶端如下信息“SYNC with master in progress”,除了INFO,SLAVEOF這兩個命令
slave-serve-stale-data yes

# 是否設(shè)置slave服務(wù)器節(jié)點只提供讀服務(wù)
slave-read-only yes

# 新的從站和重連后不能繼續(xù)備份的從站瞭亮,需要做所謂的“完全備份”方仿,即將一個RDB文件從主站傳送到從站。這個傳送有以下兩種方式: 
# 1)硬盤備份:redis主站創(chuàng)建一個新的進程,用于把RDB文件寫到硬盤上兼丰。過一會兒玻孟,其父進程遞增地將文件傳送給從站。 
# 2)無硬盤備份:redis主站創(chuàng)建一個新的進程鳍征,子進程直接把RDB文件寫到從站的套接字黍翎,不需要用到硬盤。 
# 在硬盤備份的情況下艳丛,主站的子進程生成RDB文件匣掸。一旦生成,多個從站可以立即排成隊列使用主站的RDB文件氮双。在無硬盤備份的情況下碰酝,一次RDB傳送開始,新的從站到達后戴差,需要等待現(xiàn)在的傳送結(jié)束送爸,才能開啟新的傳送。 
# 如果使用無硬盤備份暖释,主站會在開始傳送之間等待一段時間(可配置袭厂,以秒為單位),希望等待多個子站到達后并行傳送球匕。 
# 在硬盤低速而網(wǎng)絡(luò)高速(高帶寬)情況下纹磺,無硬盤備份更好。
repl-diskless-sync no

# 當啟用無硬盤備份亮曹,服務(wù)器等待一段時間后才會通過套接字向從站傳送RDB文件橄杨,這個等待時間是可配置的。 
# 這一點很重要照卦,因為一旦傳送開始式矫,就不可能再為一個新到達的從站服務(wù)。從站則要排隊等待下一次RDB傳送窄瘟。因此服務(wù)器等待一段時間以期更多的從站到達衷佃。 
# 延遲時間以秒為單位,默認為5秒蹄葱。要關(guān)掉這一功能氏义,只需將它設(shè)置為0秒,傳送會立即啟動图云。
repl-diskless-sync-delay 5

# 從站以一個預(yù)先設(shè)置好的時間間隔向服務(wù)器發(fā)送PING惯悠。這個時間間隔可以通過repl_ping_slave_period選項改變。默認值是10秒竣况。
# repl-ping-slave-period 10

# 設(shè)置主從復(fù)制過期時間
# 這個值一定要比 repl-ping-slave-period 大
# repl-timeout 60

# 指定向slave同步數(shù)據(jù)時克婶,是否禁用socket的NO_DELAY選 項。若配置為“yes”,則禁用NO_DELAY情萤,則TCP協(xié)議棧會合并小包統(tǒng)一發(fā)送鸭蛙,這樣可以減少主從節(jié)點間的包數(shù)量并節(jié)省帶寬,但會增加數(shù)據(jù)同步到 slave的時間筋岛。若配置為“no”娶视,表明啟用NO_DELAY,則TCP協(xié)議棧不會延遲小包的發(fā)送時機睁宰,這樣數(shù)據(jù)同步的延時會減少肪获,但需要更大的帶寬。 通常情況下柒傻,應(yīng)該配置為no以降低同步延時孝赫,但在主從節(jié)點間網(wǎng)絡(luò)負載已經(jīng)很高的情況下,可以配置為yes红符。
repl-disable-tcp-nodelay no

# 設(shè)置主從復(fù)制容量大小青柄。這個 backlog 是一個用來在 slaves 被斷開連接時存放 slave 數(shù)據(jù)的 buffer,所以當一個 slave 想要重新連接违孝,通常不希望全部重新同步刹前,只是部分同步就夠了,僅僅傳遞 slave 在斷開連接時丟失的這部分數(shù)據(jù)雌桑。
# 這個值越大,salve 可以斷開連接的時間就越長祖今。
# repl-backlog-size 1mb

# 在某些時候校坑,master 不再連接 slaves,backlog 將被釋放千诬。
# 如果設(shè)置為 0 耍目,意味著絕不釋放 backlog 。
# repl-backlog-ttl 3600

# 指定slave的優(yōu)先級徐绑。在不只1個slave存在的部署環(huán)境下邪驮,當master宕機時,Redis Sentinel會將priority值最小的slave提升為master傲茄。
# 這個值越小毅访,就越會被優(yōu)先選中,需要注意的是盘榨,若該配置項為0喻粹,則對應(yīng)的slave永遠不會自動提升為master。
slave-priority 100

# 主站可以停止接受寫請求草巡,當與它連接的從站少于N個守呜,滯后少于M秒。N個從站必須是在線狀態(tài)。 延遲的秒數(shù)必須<=所定義的值查乒,延遲秒數(shù)是從最后一次收到的來自從站的ping開始計算弥喉。ping通常是每秒一次。 
# 這一選項并不保證N個備份都會接受寫請求玛迄,但是會限制在指定秒數(shù)內(nèi)由于從站數(shù)量不夠?qū)е碌膶懖僮鱽G失的情況档桃。 
# 如果想要至少3個從站且延遲少于10秒,這樣寫
# min-slaves-to-write 3
# min-slaves-max-lag 10

# *********************************安全配置*********************************

# 設(shè)置連接redis的密碼
# redis速度相當快憔晒,一個外部用戶在一秒鐘進行150K次密碼嘗試藻肄,需指定強大的密碼來防止暴力破解
requirepass set_enough_strong_passwd

# 重命名一些高危命令,用來禁止高危命令
rename-command FLUSHALL ZYzv6FOBdwflW2nX
rename-command CONFIG aI7zwm1GDzMMrEi
rename-command EVAL S9UHPKEpSvUJMM
rename-command FLUSHDB D60FPVDJuip7gy6l

# *********************************限制*********************************

# 限制同時連接的客戶數(shù)量,默認是10000
# 當連接數(shù)超過這個值時拒担,redis 將不再接收其他連接請求嘹屯,客戶端嘗試連接時將收到 error 信息
# maxclients 10000

# 設(shè)置redis能夠使用的最大內(nèi)存。
# 達到最大內(nèi)存設(shè)置后从撼,Redis會先嘗試清除已到期或即將到期的Key(設(shè)置過expire信息的key)
# 在刪除時,按照過期時間進行刪除州弟,最早將要被過期的key將最先被刪除
# 如果已到期或即將到期的key刪光,仍進行set操作低零,那么將返回錯誤
# 此時redis將不再接收寫請求,只接收get請求婆翔。
# maxmemory的設(shè)置比較適合于把redis當作于類似memcached 的緩存來使用
# maxmemory <bytes>

# 當內(nèi)存達到最大值的時候Redis會選擇刪除哪些數(shù)據(jù)?有六種方式可供選擇
# volatile-lru:只對設(shè)置了過期時間的key進行LRU(默認值) 
# allkeys-lru :刪除lru算法的key   
# volatile-random:隨機刪除即將過期key   
# allkeys-random:隨機刪除   
# volatile-ttl : 刪除即將過期的   
# noeviction :永不過期掏婶,返回錯誤 
# maxmemory-policy noeviction

# LRU和 minimal TTL 算法都不是精準的算法啃奴,而是相對精確的算法(為了節(jié)省內(nèi)存),隨意你可以選擇樣本大小進行檢測雄妥。
# Redis默認的會選擇3個樣本進行檢測最蕾,你可以通過maxmemory-samples進行設(shè)置
# maxmemory-samples 3

# *********************************append only*********************************

# redis 默認每次更新操作后會在后臺異步的把數(shù)據(jù)庫鏡像備份到磁盤,但該備份非常耗時老厌,且備份不宜太頻繁
# redis 同步數(shù)據(jù)文件是按上面save條件來同步的
# 如果發(fā)生諸如拉閘限電瘟则、拔插頭等狀況,那么將造成比較大范圍的數(shù)據(jù)丟失
# 所以redis提供了另外一種更加高效的數(shù)據(jù)庫備份及災(zāi)難恢復(fù)方式
# 開啟appendonly 模式后,redis將每一次寫操作請求都追加到appendonly.aof文件中
# redis重新啟動時,會從該文件恢復(fù)出之前的狀態(tài)枝秤。
# 但可能會造成 appendonly.aof 文件過大醋拧,所以redis支持BGREWRITEAOF指令,對appendonly.aof重新整理,默認是不開啟的淀弹。
appendonly no

# 默認為appendonly.aof丹壕。
appendfilename "appendonly.aof"

# 設(shè)置對appendonly.aof 文件進行同步的頻率,有三種選擇always、everysec垦页、no雀费,默認是everysec表示每秒同步一次。
# always 表示每次有寫操作都進行同步
# everysec 表示對寫操作進行累積,每秒同步一次
# no表示等操作系統(tǒng)進行數(shù)據(jù)緩存同步到磁盤痊焊,都進行同步盏袄,everysec表示對寫操作進行累積忿峻,每秒同步一次
# appendfsync always
# appendfsync everysec
# appendfsync no


# 指定是否在后臺aof文件rewrite期間調(diào)用fsync,默認為no辕羽,表示要調(diào)用fsync(無論后臺是否有子進程在刷盤)逛尚。Redis在后臺寫RDB文件或重寫afo文件期間會存在大量磁盤IO,此時刁愿,在某些linux系統(tǒng)中绰寞,調(diào)用fsync可能會阻塞
no-appendfsync-on-rewrite yes

# 指定Redis重寫aof文件的條件,默認為100铣口,表示與上次rewrite的aof文件大小相比滤钱,當前aof文件增長量超過上次afo文件大小的100%時,就會觸發(fā)background rewrite脑题。若配置為0件缸,則會禁用自動rewrite
auto-aof-rewrite-percentage 100

# 指定觸發(fā)rewrite的aof文件大小。若aof文件小于該值叔遂,即使當前文件的增量比例達到auto-aof-rewrite-percentage的配置值他炊,也不會觸發(fā)自動rewrite。即這兩個配置項同時滿足時已艰,才會觸發(fā)rewrite
auto-aof-rewrite-min-size 64mb

# Redis啟動加載aof文件痊末,如果發(fā)現(xiàn)末尾命令不完整則自動截掉,成功加載前面正確的數(shù)據(jù)哩掺。如果設(shè)置為no凿叠,遇到此類情況,Redis啟動失敗疮丛,用redis-check-aof工具手工修復(fù)
aof-load-truncated yes

# *********************************Lua*********************************

# 一個Lua腳本最長的執(zhí)行時間幔嫂,單位為毫秒,如果為0或負數(shù)表示無限執(zhí)行時間誊薄,默認為5000
lua-time-limit 5000

# *********************************集群配置*********************************

# 打開redis集群  
# cluster-enabled yes

# cluster配置文件(啟動自動生成)  
# cluster-config-file nodes-6379.conf

#節(jié)點互連超時時間
# cluster-node-timeout 15000

# 如果設(shè)置成0,則無論從節(jié)點與主節(jié)點失聯(lián)多久锰茉,從節(jié)點都會嘗試升級成主節(jié)點
# 如果設(shè)置成正數(shù)呢蔫,則cluster-node-timeout乘以cluster-slave-validity-factor得到的時間,是從節(jié)點與主節(jié)點失聯(lián)后飒筑,此從節(jié)點數(shù)據(jù)有效的最長時間片吊,超過這個時間,從節(jié)點不會啟動故障遷移
# 假設(shè)cluster-node-timeout=5协屡,cluster-slave-validity-factor=10俏脊,則如果從節(jié)點跟主節(jié)點失聯(lián)超過50秒,此從節(jié)點不能成為主節(jié)點
# 注意肤晓,如果此參數(shù)配置為非0爷贫,將可能出現(xiàn)由于某主節(jié)點失聯(lián)卻沒有從節(jié)點能頂上的情況认然,從而導(dǎo)致集群不能正常工作,在這種情況下漫萄,只有等到原來的主節(jié)點重新回歸到集群卷员,集群才恢復(fù)運作
# cluster-slave-validity-factor 10

# 主節(jié)點需要的最小從節(jié)點數(shù),只有達到這個數(shù)腾务,主節(jié)點失敗時毕骡,它從節(jié)點才會進行遷移
# cluster-migration-barrier 1

# 在部分key所在的節(jié)點不可用時,如果此參數(shù)設(shè)置為”yes”(默認值), 則整個集群停止接受操作岩瘦;如果此參數(shù)設(shè)置為”no”未巫,則集群依然為可達節(jié)點上的key提供讀操作
# cluster-require-full-coverage yes

# *********************************慢日志部分*********************************

# slowlog-log-slower-than表示slowlog的劃定界限,只有query執(zhí)行時間大于slowlog-log-slower-than的才會定義成慢查詢启昧,才會被slowlog進行記錄叙凡。slowlog-log-slower-than設(shè)置的單位是微妙,默認是10000微妙箫津,也就是10ms 
slowlog-log-slower-than 10000

# slowlog-max-len表示慢查詢最大的條數(shù)狭姨,當slowlog超過設(shè)定的最大值后,會將最早的slowlog刪除苏遥,是個FIFO隊列
slowlog-max-len 128

# 服務(wù)端內(nèi)部的延遲監(jiān)控稍微麻煩一些饼拍,因為延遲記錄的默認閾值是0。盡管空間和時間耗費很小田炭,Redis為了高性能還是默認關(guān)閉了它师抄。所以首先我們要開啟它,設(shè)置一個合理的閾值教硫,例如下面命令中設(shè)置的100ms:
latency-monitor-threshold 0

# keyspace事件通知
notify-keyspace-events ""

# *********************************高階配置*********************************

# 當hash中包含超過指定元素個數(shù)并且最大的元素沒有超過臨界時叨吮,hash將以一種特殊的編碼方式(大大減少內(nèi)存使用)來存儲,這里可以設(shè)置這兩個臨界值
hash-max-ziplist-entries 512
hash-max-ziplist-value 64

# list數(shù)據(jù)類型多少節(jié)點以下會采用去指針的緊湊存儲格式
# list數(shù)據(jù)類型節(jié)點值大小小于多少字節(jié)會采用緊湊存儲格式
list-max-ziplist-entries 512
list-max-ziplist-value 64

# set數(shù)據(jù)類型內(nèi)部數(shù)據(jù)如果全部是數(shù)值型瞬矩,且包含多少節(jié)點以下會采用緊湊格式存儲
set-max-intset-entries 512

# zsort數(shù)據(jù)類型多少節(jié)點以下會采用去指針的緊湊存儲格式
# zsort數(shù)據(jù)類型節(jié)點值大小小于多少字節(jié)會采用緊湊存儲格式
zset-max-ziplist-entries 128
zset-max-ziplist-value 64

# HyperLogLog 稀疏表示字節(jié)限制茶鉴,這個限制包含了16個字節(jié)的頭部,當一個HyperLogLog使用sparse representation超過了這個顯示景用,它就會轉(zhuǎn)換到dense representation上
hll-sparse-max-bytes 3000

# Redis將在每100毫秒時使用1毫秒的CPU時間來對redis的hash表進行重新hash涵叮,可以降低內(nèi)存的使用
# 當你的使用場景中,有非常嚴格的實時性需要伞插,不能夠接受Redis時不時的對請求有2毫秒的延遲的話割粮,把這項配置為no。
# 如果沒有這么嚴格的實時性要求媚污,可以設(shè)置為yes舀瓢,以便能夠盡可能快的釋放內(nèi)存
activerehashing yes

# 客戶端buffer控制。在客戶端與server進行的交互中,每個連接都會與一個buffer關(guān)聯(lián)耗美,此buffer用來隊列化等待被client接受的響應(yīng)信息京髓。如果client不能及時的消費響應(yīng)信息航缀,那么buffer將會被不斷積壓而給server帶來內(nèi)存壓力。如果buffer中積壓的數(shù)據(jù)達到閥值朵锣,將會導(dǎo)致連接被關(guān)閉谬盐,buffer被移除
# 指令格式:client-output-buffer-limit <class> <hard> <soft> <seconds>,其中hard表示buffer最大值诚些,一旦達到閥值將立即關(guān)閉連接
# soft表示"容忍值"飞傀,它和seconds配合,如果buffer值超過soft且持續(xù)時間達到了seconds,也將立即關(guān)閉連接诬烹,如果超過了soft但是在seconds之后砸烦,buffer數(shù)據(jù)小于了soft,連接將會被保留
# 其中hard和soft都設(shè)置為0,則表示禁用buffer控制.通常hard值大于soft
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

# redis內(nèi)部調(diào)度(進行關(guān)閉timeout的客戶端,刪除過期key等等)頻率
hz 10

# aof rewrite過程中,是否采取增量文件同步策略,默認為“yes”绞吁。 rewrite過程中,每32M數(shù)據(jù)進行一次文件同步,這樣可以減少aof大文件寫入對磁盤的操作次數(shù)
aof-rewrite-incremental-fsync yes

redis的主從設(shè)置幢痘、集群搭建、性能監(jiān)控以及安全設(shè)置等都需要通過配置來進行管理家破,配置文件的重要性不言而喻颜说。后邊的實戰(zhàn)將詳細講解這些方面的內(nèi)容,敬請期待~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末汰聋,一起剝皮案震驚了整個濱河市门粪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌烹困,老刑警劉巖玄妈,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異髓梅,居然都是意外死亡拟蜻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門枯饿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酝锅,“玉大人,你說我怎么就攤上這事奢方∏牛” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵袱巨,是天一觀的道長。 經(jīng)常有香客問我碳抄,道長愉老,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任剖效,我火速辦了婚禮嫉入,結(jié)果婚禮上焰盗,老公的妹妹穿的比我還像新娘。我一直安慰自己咒林,他們只是感情好熬拒,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著垫竞,像睡著了一般澎粟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上欢瞪,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天活烙,我揣著相機與錄音,去河邊找鬼遣鼓。 笑死啸盏,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的骑祟。 我是一名探鬼主播回懦,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼次企!你這毒婦竟也來了怯晕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤抒巢,失蹤者是張志新(化名)和其女友劉穎贫贝,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛉谜,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡稚晚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了型诚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片客燕。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖狰贯,靈堂內(nèi)的尸體忽然破棺而出也搓,到底是詐尸還是另有隱情,我是刑警寧澤涵紊,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布傍妒,位于F島的核電站,受9級特大地震影響摸柄,放射性物質(zhì)發(fā)生泄漏颤练。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一驱负、第九天 我趴在偏房一處隱蔽的房頂上張望嗦玖。 院中可真熱鬧患雇,春花似錦、人聲如沸宇挫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽器瘪。三九已至翠储,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間娱局,已是汗流浹背彰亥。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留衰齐,地道東北人任斋。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像耻涛,于是被迫代替她去往敵國和親废酷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容