redis sentinel集群搭建及備份恢復(fù)

操作系統(tǒng) 主機(jī)IP 功能
centos 7 10.211.55.8 Master:6379 / Sentinel : 26379
centos 7 10.211.55.9 Slave :6379 / Sentinel : 26379
centos 7 10.211.55.10 Slave :6379 / Sentinel : 26379

1. Linux 下 redis 安裝

官網(wǎng)地址:http://redis.io/download

1.1 安裝GCC編譯器

// 查看是否安裝gcc編譯器  
rpm -q gcc  
// 安裝gcc編譯器  
yum -y install gcc 

1.2 安裝Redis

cd /xiyou/software/
wget http://download.redis.io/releases/redis-5.0.5.tar.gz 
tar zxvf redis-5.0.5.tar.gz  //將下載的源碼包進(jìn)行解壓縮
cd redis-5.0.5   //進(jìn)入解壓縮目錄
make   //編譯源程序
cd src && make install   //切換到redis的src目錄并進(jìn)行編譯安裝

1.3 測(cè)試下是否安裝成功

##  啟動(dòng)redis服務(wù)
// The binaries that are now compiled are available in the src directory. Run Redis with:
$ src/redis-server   
ps:如果需要將redis服務(wù)作為守護(hù)進(jìn)程(daemon)來(lái)運(yùn)行,須將redis.conf啟動(dòng)配置中的daemonize  no修改daemonize  yes 驱证。 
--------------------------------------------------------------------------
##  啟動(dòng)redis客戶(hù)端
// You can interact with Redis using the built-in client:
$ src/redis-cli         
redis> set foo bar
OK
redis> get foo
"bar"
--------------------------------------------------------------------------
## 停止Redis服務(wù)
./redis-cli shutdown
 pkill redis-server

2.redis配置

2.1 redis.cnf配置

## redis.cnf文件目錄:/xiyou/software/redis-5.0.5/
## grep -Ev "^#|^$" redis.conf
## master:
bind 10.211.55.8
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile "/var/log/redis/redis-server.log"
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir "/xiyou/software/redis-5.0.5/rdbs"
masterauth "123456"
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
requirepass "123456"
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
------------------------------------------------------------------------
slave:
## 與master結(jié)點(diǎn)的配置相同泛粹,最后添加一行
slaveof 10.211.55.8 6379
## bind 根據(jù)IP變換一下

2.2 sentinel.cnf 配置

## 3個(gè)結(jié)點(diǎn)的sentinel.cnf配置相同
protected-mode no
port 26379
daemonize yes
pidfile /var/run/redis-sentinel.pid
logfile "/var/log/redis/redis-sentinel.log"
dir "/xiyou/software/redis-5.0.5/sentinel-tmp"
sentinel monitor mymaster 10.211.55.8 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

2.3 創(chuàng)建對(duì)應(yīng)目錄

[root@centos-7-node2 log]# mkdir -p /var/log/redis/
[root@centos-7-node2 log]# mkdir -p /xiyou/software/redis-5.0.5/sentinel-tmp
[root@centos-7-node2 log]# mkdir -p /xiyou/software/redis-5.0.5/rdbs

2.4 啟動(dòng)服務(wù)

[root@centos-7-node4 redis-5.0.5]# cd /xiyou/software/redis-5.0.5/src/
[root@centos-7-node4 src]# ./redis-server ../redis.conf
[root@centos-7-node4 src]# ./redis-sentinel ../sentinel.conf

2.5 查看集群

## master:
[root@centos-7-node2 src]# redis-cli -h 10.211.55.8 -p 6379 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
10.211.55.8:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=10.211.55.9,port=6379,state=online,offset=16850,lag=1
slave1:ip=10.211.55.10,port=6379,state=online,offset=16850,lag=1
master_replid:b47bd7b2524ce8ca3264503eb22a1c06f45016e9
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:16850
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:16850
-----------------------------------------------------------------------------------
## slave
root@centos-7-node3 src]# redis-cli -h 10.211.55.9 -p 6379 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
10.211.55.9:6379> info replication
# Replication
role:slave
master_host:10.211.55.8
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:26794
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:b47bd7b2524ce8ca3264503eb22a1c06f45016e9
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:26794
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:26794
-----------------------------------------------------------------------------------------
## slave
root@centos-7-node4 src]# redis-cli -h 10.211.55.10 -p 6379 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
10.211.55.10:6379> info replication
# Replication
role:slave
master_host:10.211.55.8
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:34540
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:b47bd7b2524ce8ca3264503eb22a1c06f45016e9
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:34540
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:8658
repl_backlog_histlen:25883

3. 測(cè)試

3.1 master宕機(jī)

在Master 主節(jié)點(diǎn)(10.211.55.8)上執(zhí)行 pkill redis-server 命令來(lái)模擬Master宕機(jī)的情況:

==> 單個(gè)哨兵主觀(guān)認(rèn)為 Master 宕機(jī)
==> 當(dāng)主觀(guān)認(rèn)為 Master 宕機(jī)的哨兵個(gè)數(shù)達(dá)到 quorum 設(shè)定值時(shí)艳丛,哨兵集群客觀(guān)認(rèn)為 Master 宕機(jī)
==> 開(kāi)始 failover
==> 收集候選節(jié)點(diǎn)列表
==> 根據(jù)候選節(jié)點(diǎn)的優(yōu)先級(jí)和運(yùn)行狀態(tài)綜合判斷锐借,選擇一個(gè) Slave 并將其提拔為新的 Master
==> 將新的 Master 主節(jié)點(diǎn)信息通知到其他節(jié)點(diǎn)竭沫,并更新各節(jié)點(diǎn)的配置文件

## 查看10.211.55.8的redis-sentinel.log
10725:X 03 Jul 2019 06:51:32.386 # +odown master mymaster 10.211.55.8 6379 #quorum 3/2
10725:X 03 Jul 2019 06:51:32.386 # Next failover delay: I will not start a failover before Wed Jul  3 06:57:33 2019
10725:X 03 Jul 2019 06:51:33.114 # +config-update-from sentinel f2c13ca3312dd0bc7e796119cbe61d3d2c1ed4b8 10.211.55.9 26379 @ mymaster 10.211.55.8 6379
10725:X 03 Jul 2019 06:51:33.114 # +switch-master mymaster 10.211.55.8 6379 10.211.55.9 6379
10725:X 03 Jul 2019 06:51:33.114 * +slave slave 10.211.55.10:6379 10.211.55.10 6379 @ mymaster 10.211.55.9 6379
10725:X 03 Jul 2019 06:51:33.114 * +slave slave 10.211.55.8:6379 10.211.55.8 6379 @ mymaster 10.211.55.9 6379

//可以看到在選舉新的10.211.55.9作為新的主結(jié)點(diǎn)
// 驗(yàn)證10.211.55.9及10.211.55.10狀態(tài)
---------------------------------------------------------------------------
10.211.55.9:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=10.211.55.10,port=6379,state=online,offset=66360,lag=1
master_replid:639bfe3151ab71dcb95e68e3b76d543415d21ff4
master_replid2:b47bd7b2524ce8ca3264503eb22a1c06f45016e9
master_repl_offset:66360
second_repl_offset:40489
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:66360
-----------------------------------------------------------------------------
10.211.55.10:6379> info replication
# Replication
role:slave
master_host:10.211.55.9
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:69258
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:639bfe3151ab71dcb95e68e3b76d543415d21ff4
master_replid2:b47bd7b2524ce8ca3264503eb22a1c06f45016e9
master_repl_offset:69258
second_repl_offset:40489
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:8658
repl_backlog_histlen:60601

3.2 master 恢復(fù)

//10.211.55.8成為了slave結(jié)點(diǎn)
## 重啟10.211.55.8的redis-server膀捷,10.211.55.8成為了集群的slave結(jié)點(diǎn)

[root@centos-7-node2 src]# redis-cli -h 10.211.55.8 -p 6379 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
10.211.55.8:6379> info replication
# Replication
role:slave
master_host:10.211.55.9
master_port:6379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:267575
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:639bfe3151ab71dcb95e68e3b76d543415d21ff4
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:267575
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:263268
repl_backlog_histlen:4308

---------------------------------------redis-sentinel.log-------------------
10093:X 03 Jul 2019 07:09:13.821 # -sdown slave 10.211.55.8:6379 10.211.55.8 6379 @ mymaster 10.211.55.9 6379
10093:X 03 Jul 2019 07:09:23.753 * +convert-to-slave slave 10.211.55.8:6379 10.211.55.8 6379 @ mymaster 10.211.55.9 6379

3.3 slave宕機(jī)

 //此時(shí)的集群為
//master: 10.211.55.9 
//slave: 10.211.55.8
//slave: 10.211.55.10
--------------------------------------------------------------------------------
## 在slave從節(jié)點(diǎn)(10.211.55.10)上執(zhí)行 pkill redis-server 命令來(lái)模擬slave宕機(jī)的情況
## 主結(jié)點(diǎn)的slave變成了一個(gè)結(jié)點(diǎn)10.211.55.8
10.211.55.9:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=10.211.55.8,port=6379,state=online,offset=420227,lag=1
master_replid:639bfe3151ab71dcb95e68e3b76d543415d21ff4
master_replid2:b47bd7b2524ce8ca3264503eb22a1c06f45016e9
master_repl_offset:420241
second_repl_offset:40489
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:420241

3.4 slave恢復(fù)

## [root@centos-7-node4 src]# ./redis-server ../redis.conf
## 主結(jié)點(diǎn)上又恢復(fù)了兩個(gè)從結(jié)點(diǎn)
10.211.55.9:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=10.211.55.8,port=6379,state=online,offset=449011,lag=0
slave1:ip=10.211.55.10,port=6379,state=online,offset=449300,lag=0
master_replid:639bfe3151ab71dcb95e68e3b76d543415d21ff4
master_replid2:b47bd7b2524ce8ca3264503eb22a1c06f45016e9
master_repl_offset:449300
second_repl_offset:40489
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:449300

4. 異結(jié)點(diǎn)備份及恢復(fù)

4.1 備份恢復(fù)測(cè)試

Redis是一個(gè)開(kāi)源(BSD許可),內(nèi)存存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)服務(wù)器拿穴,可用作數(shù)據(jù)庫(kù)泣洞,高速緩存和消息隊(duì)列代理。生產(chǎn)中我們主要用來(lái)存儲(chǔ)用戶(hù)的登錄信息默色,設(shè)備的詳情數(shù)據(jù)球凰,以及會(huì)員簽到點(diǎn)贊的信息等等。
提到redis備份腿宰,就不得不提及redis的持久化的兩種方式:RDB和AOF呕诉。

  • RDB持久化方式能夠在指定的時(shí)間間隔能對(duì)你的數(shù)據(jù)進(jìn)行快照存儲(chǔ).
  • AOF持久化方式記錄每次對(duì)服務(wù)器寫(xiě)的操作,當(dāng)服務(wù)器重啟的時(shí)候會(huì)重新執(zhí)行這些命令來(lái)恢復(fù)原始的數(shù)據(jù),AOF命令以redis協(xié)議追加保存每次寫(xiě)的操作到文件末尾.Redis還能對(duì)AOF文件進(jìn)行后臺(tái)重寫(xiě),使得AOF文件的體積不至于過(guò)大.
## 將10.211.55.5 作為備份恢復(fù)結(jié)點(diǎn)
## redis配置文件中關(guān)于dump.rdb的配置
vim redis.cnf
-------------------------------------------------------------------
save 900 1
save 300 10
save 60 10000

# 將DB同步到磁盤(pán),使用SAVE命令酗失,自動(dòng)同步的觸發(fā)條件: save <秒> <更新數(shù)>
# save 900 1 代表900秒內(nèi)有1個(gè)key發(fā)生改變就觸發(fā)save
# save 300 10 代表300秒內(nèi)有10個(gè)key發(fā)生改變就觸發(fā)save
# save 60 10000 代表300秒內(nèi)有10個(gè)key發(fā)生改變就觸發(fā)save
# 各條件之間是‘或’的關(guān)系义钉,也就是說(shuō)有一個(gè)條件滿(mǎn)足就會(huì)觸發(fā)save的操作

stop-writes-on-bgsave-error yes
# 當(dāng)后臺(tái)進(jìn)程執(zhí)行save出錯(cuò)時(shí),停止redis的寫(xiě)入操作规肴。

rdbcompression yes
# 將rdb文件進(jìn)行壓縮

rdbchecksum yes
# 對(duì)rdb文件進(jìn)行校驗(yàn)

dbfilename dump.rdb
# rdb文件命名

dir  "/xiyou/software/redis-5.0.5/rdbs"
# rdb文件存儲(chǔ)目錄
## 其他配置可暫時(shí)不改捶闸,只是為了測(cè)試下備份恢復(fù)

SAVE VS BGSAVE
SAVE ----- 備份redis可以手動(dòng)使用SAVE命令,執(zhí)行SAVE命令會(huì)使用主進(jìn)程執(zhí)行快照操作拖刃,這意味著在SAVE的過(guò)程中删壮,會(huì)阻塞主進(jìn)程。
BGSAVE ---- 另一種操作是使用BGSAVE兑牡,使用BGSAVE的話(huà)redis會(huì)fork出一個(gè)子進(jìn)程來(lái)執(zhí)行快照操作央碟,而不影響主進(jìn)程。

1. 往redis的sentinel集群結(jié)點(diǎn)中寫(xiě)一堆數(shù)據(jù)并進(jìn)行保存均函,便于后續(xù)測(cè)試
10.211.55.10:6379> set name18 oo
OK
10.211.55.10:6379> set name19 pp
OK
10.211.55.10:6379> set name20 qq
OK
10.211.55.10:6379> bgsave
Background saving started

2. 關(guān)閉10.211.55.5的redis-server
pkill redis-server

3. 將源集群中的dump.rdb復(fù)制到目標(biāo)服務(wù)器的對(duì)應(yīng)路徑亿虽,查看下文件大小是否一致
[root@centos-7-node2 rdbs]# scp dump.rdb root@10.211.55.5:/xiyou/software/redis-5.0.5/rdbs/

4. 啟動(dòng)10.211.55.5的redis-server并用redis-cli登陸測(cè)試下
[root@CentOS_node1 src]# ./redis-server ../redis.conf
[root@CentOS_node1 rdbs]# ll
總用量 4
-rw-r--r-- 1 root root 399 7月   3 09:32 dump.rdb
[root@CentOS_node1 rdbs]# redis-cli -h 10.211.55.5 -p 6379
10.211.55.5:6379> get name20
"qq"
## 說(shuō)明能成功恢復(fù)沒(méi)有問(wèn)題!0病洛勉!

4.2 備份腳本

/xiyou/software/redis_bak/bak.sh
vim bak.sh
---------------------------------------------------------------------
#!/bin/bash
source_host="10.211.55.8"
dest_host="10.211.55.5"
port="6379"
pass="123456"
scp_pass="123456"

REDIS_DIR=/xiyou/software/redis-5.0.5/rdbs
REDIS_CMD=/xiyou/software/redis-5.0.5/src/"redis-cli -h $source_host -p $port -a $pass"
now="$(date -d'+0 day' +'%Y%m%d%H%M%S')"

$REDIS_CMD save
[ $? -eq 0 ] && {
  cp $REDIS_DIR/dump.rdb $REDIS_DIR/dump_${now}.rdb
    sshpass -p $scp_pass scp -r $REDIS_DIR/dump_${now}.rdb root@$dest_host:$REDIS_DIR
}

4.3 定時(shí)任務(wù)

5 0 * * *   /bin/sh  /xiyou/software/redis_bak/bak.sh &>/dev/null

那些年我們一起踩過(guò)的坑:

1. sshpass: command not found error
apt-get install sshpass ##ubuntu
-------------------------------
wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum --enablerepo=epel -y install sshpass   ##centos/redhat
##參考:https://stackoverflow.com/questions/38129835/sshpass-command-not-found-error
2. bash命名規(guī)范
中間不能有空格,可以使用下劃線(xiàn)(_)
##參考:http://www.runoob.com/linux/linux-shell-variable.html

待補(bǔ)充:redis集群連接
參考:
https://redis.io/topics/persistence
https://cloud.tencent.com/info/0420774e51445c7dbc75dcb1ff6fe49c.html
https://blog.csdn.net/pengjunlee/article/details/81429119

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末如迟,一起剝皮案震驚了整個(gè)濱河市收毫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌殷勘,老刑警劉巖此再,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異玲销,居然都是意外死亡输拇,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)贤斜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)策吠,“玉大人议慰,你說(shuō)我怎么就攤上這事∨铮” “怎么了别凹?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)洽糟。 經(jīng)常有香客問(wèn)我炉菲,道長(zhǎng),這世上最難降的妖魔是什么坤溃? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任拍霜,我火速辦了婚禮,結(jié)果婚禮上薪介,老公的妹妹穿的比我還像新娘祠饺。我一直安慰自己,他們只是感情好汁政,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布道偷。 她就那樣靜靜地躺著,像睡著了一般记劈。 火紅的嫁衣襯著肌膚如雪勺鸦。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天目木,我揣著相機(jī)與錄音换途,去河邊找鬼。 笑死刽射,一個(gè)胖子當(dāng)著我的面吹牛军拟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播誓禁,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼懈息,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了现横?” 一聲冷哼從身側(cè)響起漓拾,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤阁最,失蹤者是張志新(化名)和其女友劉穎戒祠,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體速种,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡姜盈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了配阵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馏颂。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡示血,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出救拉,到底是詐尸還是另有隱情难审,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布亿絮,位于F島的核電站告喊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏派昧。R本人自食惡果不足惜黔姜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蒂萎。 院中可真熱鬧秆吵,春花似錦、人聲如沸五慈。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)泻拦。三九已至烈疚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間聪轿,已是汗流浹背爷肝。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陆错,地道東北人灯抛。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像音瓷,于是被迫代替她去往敵國(guó)和親对嚼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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