Linux下安裝配置redis詳細教程武通,并配置哨兵模式霹崎,redis配置文件中文詳解

redis版本為redis-3.2.12,使用工具將安裝包上傳到data目錄冶忱。


redis.jpeg

在data目錄下創(chuàng)建文件夾redis尾菇,將redis安裝在此目錄。

第一步:解壓囚枪。

cd data 
tar -zxvf redis-3.2.12.tar.gz

第二步:安裝派诬,PREFIX=/data/redis用來設(shè)置安裝目錄。

cd redis-3.2.12/ 
make 
make install PREFIX=/data/redis

到此链沼,redis已經(jīng)安裝完成默赂,剩下就是配置和啟動服務。

進入redis目錄括勺,創(chuàng)建配置文件conf缆八、日志logs曲掰、數(shù)據(jù)庫dump、進程號pid四個目錄奈辰,用來存放對應的文件栏妖,這四個目錄也可以存放在其他文件夾,只要與配置文件中的配置一致即可奖恰,否則在啟動服務時會報錯吊趾。其中bin目錄就是redis安裝成功后的一些命令文件。

cd redis
mkdir conf
mkdir logs
mkdir dump
mkdir pid

redis服務配置一主二從瑟啃,哨兵模式论泛。注意:如果在實際開發(fā)中用不到哨兵模式,redis服務配置一主一從即可翰守。

主Redis配置:redis_6379.conf

# Redis配置文件

# 請注意,為了讀取配置文件疲酌,Redis必須以文件路徑作為第一個參數(shù)啟動:
# ./redis-server /data/redis/conf/redis_6379.conf

# 加載更多配置文件
# include /path/to/local.conf
# include /path/to/other.conf

# 默認Redis不以守護進程的方式運行蜡峰。如果需要開啟修改為"yes"。
# 在該模式下朗恳,redis會在后臺運行湿颅,并將進程pid號寫入至redis.conf選項pidfile設(shè)置的文件中
# 此時redis將一直運行,除非手動kill該進程粥诫。
daemonize yes 

# 以守護進程運行時油航,Redis默認會將pid存入/var/run/redis.pid文件中。
# 指定pid存放位置和文件名
pidfile /data/redis/pid/redis_6379.pid

# 接收指定端口的連接怀浆,默認是6379谊囚。
port 6379

# 在每秒高請求的環(huán)境中,您需要提高backlog的配置执赡,來避免客戶端連接速度慢的問題镰踏。
# 注意,Linux內(nèi)核會截斷這個值沙合,因此同時修改/proc/sys/net/core/somaxconn和tcp_max_syn_backlog的值奠伪,來獲得期待的效果。
tcp-backlog 6000 

# 默認Redis監(jiān)聽所有能夠鏈接服務器的網(wǎng)絡鏈接首懈。
# 可以使用"bind"配置指令只監(jiān)聽一個或多個接口绊率,后面可以跟一個或多個ip地址。
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1
bind 0.0.0.0

# 客戶端空閑N秒后連接關(guān)閉(0表示永不超時)
timeout 0

# TCP本柯模活機制滤否,就是為了保證連接的有效性,探測連接的對端是否存活的作用最仑,在間隔一定的時間發(fā)探測包顽聂,根據(jù)回復來確認該連接是否有效肥惭。
# Redis3.2.1版本之后默認值為300秒
tcp-keepalive 300

# 指定日志級別
# debug(大量新秀,針對開發(fā)/測試)
# verbose(大量的有用信息紊搪,但不像debug級別那樣混亂)
# notice(一般的信息蜜葱,可以在生產(chǎn)中使用)
# warning(只記錄非常重要和關(guān)鍵的消息)
loglevel notice

# 指定日志存放位置和日志文件名稱
logfile "/data/redis/logs/redis_6379.log"

# 設(shè)置數(shù)據(jù)庫編號
databases 16

# 將數(shù)據(jù)庫數(shù)據(jù)保存到磁盤策略:
#   save <seconds> <changes>
#   如果給定的秒數(shù)和對數(shù)據(jù)庫的修改操作數(shù)兩個條件同時滿足,則都會觸發(fā)保存耀石。
#   下面的示例中會觸發(fā)保存:
#   900秒(15分鐘)后牵囤,如果有1個key被修改
#   300秒(5分鐘)后,如果有10個key被修改
#   60秒后滞伟,如果有10000個key被修改
save 900 1
save 300 10
save 60 10000

# 最近一次保存失敗揭鳞,Redis將停止接受寫入。
# 如果保存過程中Redis再次運行梆奈,RDB將會允許再次寫入野崇。
stop-writes-on-bgsave-error yes

# 開啟RDB文件壓縮,Redis會采用LZF算法進行壓縮亩钟。
# 如果不想消耗CPU性能來進行文件壓縮的話乓梨,可以設(shè)置為關(guān)閉此功能,這樣的缺點是需要更多的磁盤空間來保存文件清酥。
rdbcompression yes

# 自從RDB 5版本之后CRC64校驗被放置在文件末尾扶镀。
# 開啟RDB文件檢查,檢查是否有無損壞焰轻,如果在啟動是檢查發(fā)現(xiàn)損壞臭觉,則停止啟動。
rdbchecksum yes

# 轉(zhuǎn)儲數(shù)據(jù)庫的文件名
dbfilename dump_6379.rdb

# 指定轉(zhuǎn)儲數(shù)據(jù)庫存放目錄辱志,必須指定
dir /data/redis/dump

# 主從復制關(guān)系蝠筑,主redis不需要配置,從redis需要配置
# slaveof <masterip> <masterport>

# 如果主redis設(shè)置了密碼揩懒,則從redis必須設(shè)置masterauth菱肖,否則主從數(shù)據(jù)同步會被拒絕。
# masterauth nxredis@YH

# 當從redis與主redis失去連接時旭从,或者正在同步數(shù)據(jù)時稳强,從機有兩種工作方式:
# 1.如果slave serve stale data設(shè)置為“yes”(默認值),則slave仍會回復客戶端請求和悦,可能會包含過期數(shù)據(jù)退疫,或者如果這是第一次同步,則數(shù)據(jù)集可能為空鸽素。
# 2.如果slave serve stale data設(shè)置為“no”褒繁,則slave將對除INFO和SLAVEOF之外的所有類型的命令回復錯誤“正在與主機同步”。
slave-serve-stale-data yes

# Redis2.6版本之后默認情況下從機為只讀馍忽。
slave-read-only yes

# 主從同步策略: 是否開啟無磁盤交互模式.
# 1) 磁盤備份: 主Redis創(chuàng)建一個新進程棒坏,將RDB文件寫入磁盤燕差。然后該文件由父進程以增量方式同步到從Redis內(nèi)存。
# 2) 無磁盤交互模式: 主Redis創(chuàng)建一個新進程直接將RDB文件同步到從Redis內(nèi)存坝冕。
repl-diskless-sync no

# 在進行無磁盤交互模式下Redis從庫的延遲時間
repl-diskless-sync-delay 5

# 從Redis以設(shè)定的間隔時間向主Redis發(fā)送ping徒探,默認為10秒。
# repl-ping-slave-period 10

# 主從同步超時時間喂窟,該值必須大于ping的時間間隔测暗。
# repl-timeout 60

# 第一次數(shù)據(jù)同步后是否采用延遲策略。
# 設(shè)置成yes磨澡,則redis會合并小的TCP包從而節(jié)省帶寬碗啄,但會增加同步延遲(40ms),造成master與slave數(shù)據(jù)不一致稳摄。
# 設(shè)置成no稚字,則redis master會立即發(fā)送同步數(shù)據(jù),沒有延遲
repl-disable-tcp-nodelay no

# 緩沖復制隊列大小
# repl-backlog-size 1mb

# 緩沖復制隊列存活時長厦酬,0表示永遠有效
# repl-backlog-ttl 3600

# 主Redis宕機后胆描,選取從Redis時根據(jù)該設(shè)置的優(yōu)先級選取,該值越小優(yōu)先級越大弃锐。
# 如果多個從Redis優(yōu)先級相同袄友,則選取復制內(nèi)容越完整的當選殿托。
# 如果優(yōu)先級和內(nèi)容復制都相同霹菊,則選取runid最小的。
# 設(shè)置為0表示永不能當選為主Redis支竹。
# 默認值為100
slave-priority 100

# 設(shè)置訪問密碼旋廷,密碼盡可能復雜,以免被攻擊破解礼搁。
# 注意饶碘,主redis設(shè)置了密碼,則從redis必須設(shè)置masterauth馒吴,否則主從數(shù)據(jù)同步會被拒絕扎运。
requirepass nxredis@YH

#設(shè)置客戶端同時最大連接數(shù),默認情況下10000饮戳。
maxclients 1024

# 內(nèi)存大小配置
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
# 單位不區(qū)分大小寫豪治,所以1GB 1Gb 1gB時相同的含義
maxmemory 1073741824

# 內(nèi)存回收策略
# 1.volatile-lru:從設(shè)置了過期時間的數(shù)據(jù)集中,選擇最近最久未使用的數(shù)據(jù)釋放扯罐。
# 2.allkeys-lru:從數(shù)據(jù)集中(包括設(shè)置過期時間以及未設(shè)置過期時間的數(shù)據(jù)集中)负拟,選擇最近最久未使用的數(shù)據(jù)釋放。
# 3.volatile-random:從設(shè)置了過期時間的數(shù)據(jù)集中歹河,隨機選擇一個數(shù)據(jù)進行釋放掩浙。
# 4.allkeys-random:從數(shù)據(jù)集中(包括了設(shè)置過期時間以及未設(shè)置過期時間)隨機選擇一個數(shù)據(jù)進行入釋放花吟。
# 5.volatile-ttl:從設(shè)置了過期時間的數(shù)據(jù)集中,選擇馬上就要過期的數(shù)據(jù)進行釋放操作厨姚。
# 6.noeviction:不刪除任意數(shù)據(jù)(但redis還會根據(jù)引用計數(shù)器進行釋放呦~),這時如果內(nèi)存不夠時衅澈,會直接返回錯誤。
# 默認回收策略為:noeviction
# maxmemory-policy noeviction

# LRU和TTL不是精確算法遣蚀,而是近似算法矾麻。
# Redis默認將檢查5個key并選擇釋放最近使用最少的key,因此可以通過調(diào)整該值來提高速度或精度芭梯。
# 該配置只對1-5的回收策略有效险耀。
# 10非常接近真實的LRU,但需要更多的CPU玖喘。
# 3很快甩牺,但不是很準確。
# maxmemory-samples 5

# Redis默認采用異步的方式將數(shù)據(jù)存放到磁盤上累奈,這個模式對大部份應用來說是足夠好的贬派。
# AOF與RDB模式可以同時啟用,默認AOF模式不啟用澎媒,所以以下眾多AOF配置不起作用搞乏。
appendonly no

appendfilename "appendonly_6379.aof"

# no: 不即時同步,由操作系統(tǒng)控制何時刷寫到磁盤上戒努,這種模式速度最快请敦。
# always: 每次只寫日志,速度較慢储玫,但最安全侍筛。
# everysec: 每秒鐘同步一次,折中的方案撒穷。
appendfsync everysec

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

aof-load-truncated yes

# lua腳本的最大運行時間匣椰,單位是毫秒。
lua-time-limit 5000

# slog log是用來記錄redis運行中執(zhí)行比較慢的命令耗時端礼。slog log保存在內(nèi)存中禽笑。
# 執(zhí)行時間比slowlog-log-slower-than大的請求命令記錄到slowlog里面,單位是微秒蛤奥,所以1000000就是1秒佳镜。
slowlog-log-slower-than 10000

# 最大保存命令條數(shù)
slowlog-max-len 128

# 延遲監(jiān)控,默認關(guān)閉喻括。
latency-monitor-threshold 0

# 使得客戶端可以通過訂閱頻道或模式邀杏,來接收那些以某種方式改動了 Redis 數(shù)據(jù)集的事件。
# 因為開啟鍵空間通知功能需要消耗一些 CPU ,所以在默認配置下望蜡,該功能處于關(guān)閉狀態(tài)唤崭。
# 該配置可以是以下字符的任意組合
#  K     Keyspace events, published with __keyspace@<db>__ prefix.
#  E     Keyevent events, published with __keyevent@<db>__ prefix.
#  g     Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ...
#  $     String commands
#  l     List commands
#  s     Set commands
#  h     Hash commands
#  z     Sorted set commands
#  x     Expired events (events generated every time a key expires)
#  e     Evicted events (events generated when a key is evicted for maxmemory)
#  A     Alias for g$lshzxe, so that the "AKE" string means all the events.
notify-keyspace-events ""

# ziplist中允許存儲的最大條目個數(shù),默認為512脖律,建議為128
hash-max-ziplist-entries 512

# ziplist中允許條目value值最大字節(jié)數(shù)谢肾,默認為64,建議為1024
hash-max-ziplist-value 64

# -5: 每個quicklist節(jié)點上的ziplist大小不能超過64 Kb小泉。
# -4: 每個quicklist節(jié)點上的ziplist大小不能超過32 Kb芦疏。
# -3: 每個quicklist節(jié)點上的ziplist大小不能超過16 Kb。
# -2: 每個quicklist節(jié)點上的ziplist大小不能超過8 Kb微姊。(-2是Redis給出的默認值)
# -1: 每個quicklist節(jié)點上的ziplist大小不能超過4 Kb酸茴。
list-max-ziplist-size -2

# quicklist兩端不被壓縮的節(jié)點個數(shù)。
list-compress-depth 0

set-max-intset-entries 512

zset-max-ziplist-entries 128
zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

# Redis將在每100毫秒時使用1毫秒的CPU時間來對redis的hash表進行重新hash兢交,可以降低內(nèi)存的使用薪捍。
# 當你的使用場景中,有非常嚴格的實時性需要配喳,不能夠接受Redis時不時的對請求有2毫秒的延遲的話酪穿,把這項配置為no。
# 如果沒有這么嚴格的實時性要求晴裹,可以設(shè)置為yes被济,以便能夠盡可能快的釋放內(nèi)存。
activerehashing yes

# normal -> normal clients including MONITOR clients
# slave  -> slave clients
# pubsub -> clients subscribed to at least one pubsub channel or pattern
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

# 默認值為10涧团。
# Redis會調(diào)用一個內(nèi)部函數(shù)來執(zhí)行許多后臺任務只磷,例如在超時時關(guān)閉客戶端的連接,清除從未請求的過期密鑰等等少欺。
# 該值越大喳瓣,后臺任務執(zhí)行的越及時馋贤,但是會消耗更多的CPU赞别。
hz 10

# 在aof重寫的時候,如果打開了aof-rewrite-incremental-fsync開關(guān)配乓,系統(tǒng)會每32MB執(zhí)行一次fsync仿滔。
# 這對于把文件寫入磁盤是有幫助的,可以避免過大的延遲峰值
aof-rewrite-incremental-fsync yes

從Redis配置犹芹,redis_6380.conf和redis_6381.conf崎页,與主Redis配置基本上一樣,不一樣的地方在于端口腰埂、數(shù)據(jù)庫飒焦、日志、pid文件名稱,都以6380或6381為標志牺荠,最重要的地方是建立主從關(guān)系和同步驗證翁巍。

# 設(shè)置主Redis的地址和端口,該Redis為從節(jié)點
# 主從復制關(guān)系休雌,主redis不需要配置灶壶,從redis需要配置
slaveof 127.0.0.1 6379

# 設(shè)置訪問密碼,密碼盡可能復雜杈曲,以免被攻擊破解驰凛。
# 注意,主redis設(shè)置了密碼担扑,則從redis必須設(shè)置masterauth恰响,否則主從數(shù)據(jù)同步會被拒絕。
# requirepass nxredis@YH
# 如果主redis設(shè)置了密碼涌献,則從redis必須設(shè)置masterauth渔隶,否則主從數(shù)據(jù)同步會被拒絕。
masterauth nxredis@YH

注意:對只使用redis服務洁奈,只需要在主Redis里面配置requirepass间唉,在從Redis里面配置masterauth,密碼保持一致利术,密碼盡可能復雜呈野,以免被攻擊破解。

注意:對只使用redis服務印叁,如果從Redis也有必要加入訪問驗證被冒,也可以設(shè)置requirepass,而且密碼可以與主Redis密碼不同轮蜕。

將配置文件放置到/data/redis/conf目錄下昨悼,然后就可以啟動服務了。

啟動服務要按照主從順序依次啟動跃洛。

cd /data/redis/bin
./redis-server /data/redis/conf/redis_6379.conf
./redis-server /data/redis/conf/redis_6380.conf
./redis-server /data/redis/conf/redis_6381.conf

查看服務啟動情況:

ps -ef|grep redis

也可以通過查看日志文件來確認服務是否正常啟動率触。

通過客戶端登錄Redis驗證數(shù)據(jù)同步情況:

主Redis登錄驗證,設(shè)置數(shù)據(jù):

cd /data/redis/bin
./redis-cli
auth nxredis@YH
set name zqz

從Redis登錄汇竭,獲取數(shù)據(jù):從Redis并沒有設(shè)置密碼葱蝗,所以無需驗證就可以操作。

./redis-cli -p 6380 
get name

配置哨兵模式:

Redis Sentinel集群通常由3到5個節(jié)點組成细燎,如果個別節(jié)點掛了两曼,集群還可以正常運作。Sentinel負責監(jiān)控Redis集群的健康情況玻驻。

如果主Redis掛掉悼凑,Sentinel集群會通過投票選擇一個新的主Redis。當原來的主Redis恢復時,它會被當做新的主Redis的從Redis重新加入Redis集群户辫。

設(shè)置連接master和slave的密碼益老,需要注意的是sentinel不能分別為master和slave設(shè)置不同的密碼,因此master和slave的密碼必須設(shè)置相同寸莫。也就是說主Redis和從Redis都必須設(shè)置requirepass和masterauth捺萌,而且密碼必須相同。

sentinel.conf配置信息:

protected-mode no
port 26379
sentinel myid a2b0854207a29e03e256b9628a18538c9a16a38b
# 監(jiān)控的主節(jié)點的名字膘茎、IP 和端口桃纯,最后一個1表示有1臺 Sentinel 發(fā)現(xiàn)有問題,就會發(fā)生故障轉(zhuǎn)移
sentinel monitor redisYH 127.0.0.1 6379 1
# sentinel日志
logfile "/data/redis/logs/sentinel.log"
# Generated by CONFIG REWRITE
dir "/data/redis/"
# 密碼驗證披坏,通過添加主節(jié)點的密碼态坦,對主Redis的運行狀態(tài)做監(jiān)控
sentinel auth-pass redisYH nxredis@YH
sentinel config-epoch redisYH 0
sentinel leader-epoch redisYH 115744
sentinel current-epoch 115744

將該配置文件放置到/data/redis/conf目錄下,啟動sentinel服務:

./server-sentinel /data/redis/conf/sentinel.conf

驗證sentinel是否起作用棒拂,可以手工shutdown掉主Redis伞梯。

./redis-cli 
auth nxredis@YH 
shutdown

這時從Redis想要訪問主Redis同步數(shù)據(jù)就會提示錯誤信息:

Connecting to MASTER 127.0.0.1:6379 
MASTER <-> SLAVE sync started 
Error condition on socket for SYNC: Connection refused

sentinel在監(jiān)測到主Redis宕機之后,通過選舉帚屉,將一個從Redis選定為新的主Redis谜诫。通過查看sentinel日志可以發(fā)現(xiàn),選定6380為新的主Redis攻旦,同時將另外兩個Redis作為從Redis喻旷。

switch-master redisYH 127.0.0.1 6379 127.0.0.1 6380
slave slave 127.0.0.1:6381 127.0.0.1 6381 @ redisYH 127.0.0.1 6380
slave slave 127.0.0.1:6379 127.0.0.1 6379 @ redisYH 127.0.0.1 6380

注意:選定6380為主Redis后,所有的配置文件都會被修改牢屋,主要是重新建立主從關(guān)系且预。

6379會新增:slaveof 127.0.0.1 6380

6380會刪掉:slaveof 127.0.0.1 6379

6381會修改:slaveof 127.0.0.1 6380

由于6379服務已經(jīng)關(guān)掉,所以雖然sentinel將6379作為6380的從服務烙无,但是沒有真正的建立锋谐。

重新啟動6379服務,這時sentinel會重建建立一次主從關(guān)系:

convert-to-slave slave 127.0.0.1:6379 127.0.0.1 6379 @ redisYH 127.0.0.1 6380
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末截酷,一起剝皮案震驚了整個濱河市涮拗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌合搅,老刑警劉巖多搀,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歧蕉,死亡現(xiàn)場離奇詭異灾部,居然都是意外死亡,警方通過查閱死者的電腦和手機惯退,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門赌髓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事锁蠕∫囊埃” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵荣倾,是天一觀的道長悯搔。 經(jīng)常有香客問我,道長舌仍,這世上最難降的妖魔是什么妒貌? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮铸豁,結(jié)果婚禮上灌曙,老公的妹妹穿的比我還像新娘。我一直安慰自己节芥,他們只是感情好在刺,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著头镊,像睡著了一般蚣驼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上相艇,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天隙姿,我揣著相機與錄音,去河邊找鬼厂捞。 笑死输玷,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的靡馁。 我是一名探鬼主播欲鹏,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼臭墨!你這毒婦竟也來了赔嚎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤胧弛,失蹤者是張志新(化名)和其女友劉穎尤误,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體结缚,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡损晤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了红竭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尤勋。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡喘落,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出最冰,到底是詐尸還是另有隱情瘦棋,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布暖哨,位于F島的核電站赌朋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏篇裁。R本人自食惡果不足惜箕慧,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望茴恰。 院中可真熱鬧颠焦,春花似錦、人聲如沸往枣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽分冈。三九已至圾另,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雕沉,已是汗流浹背集乔。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留坡椒,地道東北人扰路。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像倔叼,于是被迫代替她去往敵國和親汗唱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

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