Redis安装与卸载

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,
并提供多种语言的API。它支持丰富的数据类型,和高速的内存读写。正在逐步取代memcached的地位。

下面就演示下在centos6.9的32位下的安装配置过程。

1、安装

2、配置

3、卸载

1、安装

①我们可以通过在官网下载tar.gz的安装包,或者通过wget的方式下载

[
复制代码

](javascript:void(0); "复制代码")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost data]# wget http://download.redis.io/releases/redis-4.0.1.tar.gz
--2017-09-03 09:51:27-- http://download.redis.io/releases/redis-4.0.1.tar.gz
正在解析主机 download.redis.io... 109.74.203.151 正在连接 download.redis.io|109.74.203.151|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1711660 (1.6M) [application/x-gzip] 正在保存至: “redis-4.0.1.tar.gz” 57% [=====================================> ] 981,091 298K/s eta(英国中部时
64% [==========================================> ] 1,105,869 309K/s eta(英国中部时
72% [===============================================> ] 1,237,657 321K/s eta(英国中部时
80% [====================================================> ] 1,376,455 334K/s eta(英国中部时
86% [========================================================> ] 1,478,801 341K/s eta(英国中部时
92% [============================================================> ] 1,582,549 349K/s eta(英国中部时
100%[==================================================================>] 1,711,660 380K/s in 4.6s 2017-09-03 09:51:32 (363 KB/s) - 已保存 “redis-4.0.1.tar.gz” [1711660/1711660]) [root@localhost data]#</pre>

[[图片上传失败...(image-f88109-1537269898015)]
pload-images.jianshu.io/upload_images/6668935-c85daa91110880d1.gif?imageMogr2/auto-orient/strip)](javascript:void(0); "复制代码")

②解压

image

View Code

③移动到/local/usr/redis目录下去,这个纯属个人爱好

[
复制代码

](javascript:void(0); "复制代码")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost data]# ll
总用量 1676 drwxrwxr-x. 6 root root 4096 7月 24 22:58 redis-4.0.1 -rw-r--r--. 1 root root 1711660 7月 24 22:59 redis-4.0.1.tar.gz [root@localhost data]# mv redis-4.0.1 ../redis [root@localhost data]# cd .. [root@localhost local]# ll
总用量 44 drwxr-xr-x. 2 root root 4096 9月 3 09:43 bin
drwxr-xr-x. 2 root root 4096 9月 3 10:04 data
drwxr-xr-x. 2 root root 4096 9月 23 2011 etc
drwxr-xr-x. 2 root root 4096 9月 23 2011 games
drwxr-xr-x. 2 root root 4096 9月 23 2011 include
drwxr-xr-x. 2 root root 4096 9月 23 2011 lib
drwxr-xr-x. 2 root root 4096 9月 23 2011 libexec
drwxrwxr-x. 6 root root 4096 7月 24 22:58 redis
drwxr-xr-x. 2 root root 4096 9月 23 2011 sbin
drwxr-xr-x. 5 root root 4096 4月 1 04:48 share
drwxr-xr-x. 2 root root 4096 9月 23 2011 src [root@localhost local]# cd redis [root@localhost redis]# ll
总用量 276 -rw-rw-r--. 1 root root 127778 7月 24 22:58 00-RELEASENOTES
-rw-rw-r--. 1 root root 53 7月 24 22:58 BUGS
-rw-rw-r--. 1 root root 1815 7月 24 22:58 CONTRIBUTING
-rw-rw-r--. 1 root root 1487 7月 24 22:58 COPYING
drwxrwxr-x. 6 root root 4096 7月 24 22:58 deps
-rw-rw-r--. 1 root root 11 7月 24 22:58 INSTALL
-rw-rw-r--. 1 root root 151 7月 24 22:58 Makefile
-rw-rw-r--. 1 root root 4223 7月 24 22:58 MANIFESTO
-rw-rw-r--. 1 root root 20530 7月 24 22:58 README.md
-rw-rw-r--. 1 root root 57764 7月 24 22:58 redis.conf
-rwxrwxr-x. 1 root root 271 7月 24 22:58 runtest
-rwxrwxr-x. 1 root root 280 7月 24 22:58 runtest-cluster
-rwxrwxr-x. 1 root root 281 7月 24 22:58 runtest-sentinel
-rw-rw-r--. 1 root root 7606 7月 24 22:58 sentinel.conf
drwxrwxr-x. 3 root root 4096 7月 24 22:58 src
drwxrwxr-x. 10 root root 4096 7月 24 22:58 tests
drwxrwxr-x. 8 root root 4096 7月 24 22:58 utils [root@localhost redis]# cd .. [root@localhost local]#</pre>

[
复制代码

](javascript:void(0); "复制代码")

④接下来就是编译了,通过make命令,如果编译的时候报gcc命令找不到的话,可以通过下面的命令安装gcc命令,gcc是c的编译命令

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">yum install gcc-c++</pre>

下面就通过make来编译,make是自动编译,会根据Makefile中描述的内容来进行编译。

[
复制代码

](javascript:void(0); "复制代码")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost redis]# make
cd src && make all
make[1]: Entering directory /usr/local/redis/src' CC Makefile.dep . . . . Hint: It's a good idea to run 'make test' ;) make[1]: Leaving directory/usr/local/redis/src' [root@localhost redis]#</pre>

[
复制代码

](javascript:void(0); "复制代码")

⑤可以看到在src目录下生成了几个新的文件。

[
复制代码

](javascript:void(0); "复制代码")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost redis]# ll -tr src
总用量 44440 -rw-rw-r--. 1 root root 3779 7月 24 22:58 zmalloc.h
.
.
.
-rw-r--r--. 1 root root 56148 9月 3 10:11 rax.o
-rwxr-xr-x. 1 root root 7185836 9月 3 10:11 redis-server
-rwxr-xr-x. 1 root root 7185836 9月 3 10:11 redis-sentinel
-rw-r--r--. 1 root root 143800 9月 3 10:11 redis-cli.o
-rwxr-xr-x. 1 root root 5092431 9月 3 10:11 redis-cli
-rw-r--r--. 1 root root 44892 9月 3 10:11 redis-benchmark.o
-rwxr-xr-x. 1 root root 4985275 9月 3 10:11 redis-benchmark
-rwxr-xr-x. 1 root root 7185836 9月 3 10:11 redis-check-rdb
-rwxr-xr-x. 1 root root 7185836 9月 3 10:11 redis-check-aof [root@localhost redis]#</pre>

[
复制代码

](javascript:void(0); "复制代码")

为了使用方便,我们需要将这个几个文件加到/usr/local/bin目录下去。这个目录在Path下面的话,就可以直接执行这几个命令了。

[
复制代码

](javascript:void(0); "复制代码")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost redis]# make install
cd src && make install
make[1]: Entering directory /usr/local/redis/src' CC Makefile.dep make[1]: Leaving directory/usr/local/redis/src'
make[1]: Entering directory `/usr/local/redis/src'

Hint: It's a good idea to run 'make test' ;)
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
make[1]: Leaving directory `/usr/local/redis/src' [root@localhost redis]# cd .. [root@localhost local]# ll
总用量 44 drwxr-xr-x. 2 root root 4096 9月 3 10:16 bin
drwxr-xr-x. 2 root root 4096 9月 3 10:04 data
drwxr-xr-x. 2 root root 4096 9月 23 2011 etc
drwxr-xr-x. 2 root root 4096 9月 23 2011 games
drwxr-xr-x. 2 root root 4096 9月 23 2011 include
drwxr-xr-x. 2 root root 4096 9月 23 2011 lib
drwxr-xr-x. 2 root root 4096 9月 23 2011 libexec
drwxrwxr-x. 6 root root 4096 7月 24 22:58 redis
drwxr-xr-x. 2 root root 4096 9月 23 2011 sbin
drwxr-xr-x. 5 root root 4096 4月 1 04:48 share
drwxr-xr-x. 2 root root 4096 9月 23 2011 src [root@localhost local]# ll bin
总用量 30908 -rwxr-xr-x. 1 root root 4985275 9月 3 10:16 redis-benchmark
-rwxr-xr-x. 1 root root 7185836 9月 3 10:16 redis-check-aof
-rwxr-xr-x. 1 root root 7185836 9月 3 10:16 redis-check-rdb
-rwxr-xr-x. 1 root root 5092431 9月 3 10:16 redis-cli
lrwxrwxrwx. 1 root root 12 9月 3 10:16 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 7185836 9月 3 10:16 redis-server [root@localhost local]#</pre>

[
复制代码

](javascript:void(0); "复制代码")

可以看到,这几个文件就已经被加载到bin目录下了

⑥下面启动服务器,来看看安装是否成功。使用redis-server命令。

[
复制代码

](javascript:void(0); "复制代码")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost local]# redis-server 9190:C 03 Sep 10:19:09.291 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 9190:C 03 Sep 10:19:09.292 # Redis version=4.0.1, bits=32, commit=00000000, modified=0, pid=9190, just started 9190:C 03 Sep 10:19:09.292 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf 9190:M 03 Sep 10:19:09.295 * Increased maximum number of open files to 10032 (it was originally set to 1024). 9190:M 03 Sep 10:19:09.312 # Warning: 32 bit instance detected but no memory limit set. Setting 3 GB maxmemory limit with 'noeviction' policy now.
.
.-__ ''-._ _.- .. ''-._ Redis 4.0.1 (00000000/0) 32 bit
.-.-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.-.|'_.-'| Port: 6379 |-. ._ / _.-' | PID: 9190-._ -._-./ .-' .-'
|-._-.
-.__.-' _.-'_.-'| |-.
-._ _.-'_.-' | http://redis.io-._ -._-..-'.-' .-'
|-._-.
-.__.-' _.-'_.-'| |-.
-._ _.-'_.-' |-._ -._-..-'.-' .-'
-._-.
.-' .-'
-._ _.-'-.
_.-' 9190:M 03 Sep 10:19:09.316 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 9190:M 03 Sep 10:19:09.316 # Server initialized 9190:M 03 Sep 10:19:09.318 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 9190:M 03 Sep 10:19:09.318 * Ready to accept connections</pre>

[
复制代码

](javascript:void(0); "复制代码")

看到这个界面的话,就表示安装成功了。

下面通过在启动一个linux客户端,通过server-cli shutdown来关闭服务器。

[
复制代码

](javascript:void(0); "复制代码")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost ~]# redis-cli shutdown [root@localhost ~]# 下面是刚刚服务器启动的客户端的log 9190:M 03 Sep 10:20:45.566 # User requested shutdown... 9190:M 03 Sep 10:20:45.566 * Saving the final RDB snapshot before exiting. 9190:M 03 Sep 10:20:45.631 * DB saved on disk 9190:M 03 Sep 10:20:45.631 # Redis is now ready to exit, bye bye... [root@localhost local]#</pre>

[
复制代码

](javascript:void(0); "复制代码")

2、配置

可以看到,前面在启动redis服务器后,都是在前台启动的,需要重新启动一个客户端来进行登陆操作。这样非常不方便,

所以,我们需要设置后台启动。

在redis.conf的配置文件里面。做如下的修改:

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">daemonize no
修改为:
daemonize yes</pre>

下面需要设置redis服务器开机自动启动:

要先让redis服务自动启动的话,首先需要在/etc/init.d目录下创建redis的启动脚本。

将redis安装目录下的utils/redis_init_script复制到/etc/init.d目录下,命名为redis(名字简单,使用方便)

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost utils]# cp redis_init_script /etc/init.d/redis [root@localhost utils]# ll /etc/init.d/redis
-rwxr-xr-x. 1 root root 1098 9月 3 13:02 /etc/init.d/redis [root@localhost utils]#</pre>

继续编辑启动文件,修改其中指定的pid和配置文件。

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">PIDFILE=/var/run/redis_{REDISPORT}.pid CONF="/etc/redis/{REDISPORT}.conf" 修改为
PIDFILE=/var/redis/run/redis_${REDISPORT}.pid
CONF="/etc/redis/redis.conf"</pre>

首先创建存放pid的目录为/var/redis/run

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost var]# pwd
/var [root@localhost var]# mkdir redis [root@localhost var]# cd redis [root@localhost redis]# mkdir run [root@localhost redis]#</pre>

接下来,我们需要把配置文件复制一份到/etc/redis这个目录下面去

[
复制代码

](javascript:void(0); "复制代码")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost etc]# mkdir redis [root@localhost etc]# cd redis [root@localhost redis]# ll
总用量 0
[root@localhost redis]# cp /usr/local/redis/redis.conf ./ [root@localhost redis]# ll
总用量 60 -rw-r--r--. 1 root root 57765 9月 3 13:12 redis.conf [root@localhost redis]# pwd
/etc/redis [root@localhost redis]#</pre>

[
复制代码

](javascript:void(0); "复制代码")

修改配置文件中的pid为前面配置的pid。

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">pidfile /var/run/redis_6379.pid
修改为
pidfile /var/redis/run/redis_6379.pid</pre>

至此为止,我们已经可以通过service redis start/stop来启动和关闭redis服务了。

最后只需要通过chkconfig redis on命令来设置开机启动即可。

如果提示redis 服务不支持 chkconfig的话,只需要在/etc/init.d/redis这个启动脚本的第二行后面加上下面的内容即可。

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"># chkconfig:2345 90 10 #

description:Redis is a persistent key-value database</pre>

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost ~]# chkconfig redis on
redis 服务不支持 chkconfig [root@localhost ~]# vi /etc/init.d/redis [root@localhost ~]# chkconfig redis on [root@localhost ~]#</pre>

3、卸载

卸载redis非常的简单,只需要简单的三步

1、停止redis服务器

首先,通过下面的命令查看redis服务是否在运行

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost ~]# ps aux|grep redis
root 2553 0.2 0.1 41964 1916 ? Ssl 09:38 0:00 redis-server 127.0.0.1:6379 root 2565 0.0 0.0 6048 780 pts/0 S+ 09:39 0:00 grep redis [root@localhost ~]#</pre>

可以看到,在6379端口,有redis-server的监听

通过下面的命令停止redis服务器。

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost ~]# redis-cli shutdown [root@localhost ~]# ps aux|grep redis

root 2575 0.0 0.0 6048 780 pts/0 S+ 09:41 0:00 grep redis [root@localhost ~]#</pre>

可以看到,已经停止了redis服务了。

需要注意的是,由于我的redis命令都安装到/usr/local/bin目录下面了,并且添加到环境变量PATH里面了,所以可以直接运行。

2、删除make的时候生成的几个redisXXX的文件

[
复制代码

](javascript:void(0); "复制代码")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost local]# ll /usr/local/bin
总用量 30908 -rwxr-xr-x. 1 root root 4985307 9月 2 21:13 redis-benchmark
-rwxr-xr-x. 1 root root 7185872 9月 2 21:13 redis-check-aof
-rwxr-xr-x. 1 root root 7185872 9月 2 21:13 redis-check-rdb
-rwxr-xr-x. 1 root root 5092475 9月 2 21:13 redis-cli
lrwxrwxrwx. 1 root root 12 9月 2 21:13 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 7185872 9月 2 21:13 redis-server [root@localhost local]# rm -f /usr/local/bin/redis* [root@localhost local]# ll /usr/local/bin
总用量 0
[root@localhost local]#</pre>

[
复制代码

](javascript:void(0); "复制代码")

3、顺便也删除掉解压后的文件目录和所以文件

[
复制代码

](javascript:void(0); "复制代码")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@localhost local]# ll
总用量 40 drwxr-xr-x. 2 root root 4096 9月 3 09:43 bin
drwxr-xr-x. 2 root root 4096 9月 23 2011 etc
drwxr-xr-x. 2 root root 4096 9月 23 2011 games
drwxr-xr-x. 2 root root 4096 9月 23 2011 include
drwxr-xr-x. 2 root root 4096 9月 23 2011 lib
drwxr-xr-x. 2 root root 4096 9月 23 2011 libexec
drwxrwxr-x. 6 root root 4096 9月 2 21:11 redis
drwxr-xr-x. 2 root root 4096 9月 23 2011 sbin
drwxr-xr-x. 5 root root 4096 4月 1 04:48 share
drwxr-xr-x. 2 root root 4096 9月 23 2011 src [root@localhost local]# rm -rf redis [root@localhost local]# ll
总用量 36 drwxr-xr-x. 2 root root 4096 9月 3 09:43 bin
drwxr-xr-x. 2 root root 4096 9月 23 2011 etc
drwxr-xr-x. 2 root root 4096 9月 23 2011 games
drwxr-xr-x. 2 root root 4096 9月 23 2011 include
drwxr-xr-x. 2 root root 4096 9月 23 2011 lib
drwxr-xr-x. 2 root root 4096 9月 23 2011 libexec
drwxr-xr-x. 2 root root 4096 9月 23 2011 sbin
drwxr-xr-x. 5 root root 4096 4月 1 04:48 share
drwxr-xr-x. 2 root root 4096 9月 23 2011 src [root@localhost local]#</pre>

[
复制代码

](javascript:void(0); "复制代码")

这样,redis就卸载完成了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容