Redis特点
- 一个高性能Key-Value内存数据库。官方号称其OPS能够达到10w+。
- 支持多种数据结构,如String、Hash Table、List、Set、Sorted Set等等。
- 单线程模型,使用简单。
- 丰富的功能,如发布订阅、Pipeline、慢查询等等。
- 支持持久化。
- 高可用分布式支持。

Redis的典型使用场景
- 缓存
- 计数器
- 消息队列
- 排行榜
- 社交网络
- 实时系统
- 分布式会话
Redis的安装
Linux
- 下载:
wget http://download.redis.io/releases/redis-3.0.7.tar.gz - 解压:
tar -zxvf redis-3.0.7.tar.gz - 进入解压后目录,执行:
make && make install - 进入src目录,里面有编译后的可执行文件。
make是编译redis。make install则会把redis安装到默认目录,即把redis编程产生的可执行文件复制到/usr/local/bin/目录下,这样就可以在任何目录下通过命令行调用这些可执行文件。
可执行文件说明
redis-server:使用它可以启动Redis服务器。
redis-cli:Redis命令行工具(命令行客户端),可用于连接Redis服务端。
redis-benchmark:Redis性能测试工具。
redis-check-aof:AOF文件检查工具(和持久化有关)。
redis-check-dump:RDB文件检查工具(和持久化有关)。
redis-sentinel:Senditnel服务器
三种启动方式
- 最简启动:直接执行
redis-server - 动态参数启动:添加命令行参数,例如:
redis-server --port 6380 - 配置文件启动:指定配置文件:
redis-sever configPath
生产环境推荐使用配置文件启动。由于redis是单线程模型,通常会采用“单机多实例”的方式在一台机器上启动多个Redis服务器,此时可以用不同的配置文件,且每个配置文件的端口号不同。
验证Redis服务器是否启动的方法
redis默认使用6379端口
Redis常用配置
- daemonize:是否以守护进程的方式启动。默认是no,在前台运行。启动Redis的终端退出后,Redis也就退出了。推荐改为yes。
- port:redis对外端口号。默认是6379。当要启动多个redis实例时,必须修改这个端口号。
- logfile:Redis日志文件名。
- dir:Redis工作目录。Redis运行中产生的持久化文件、日志文件等,都将放到这个目录下。
- ……
# redis-6382.confdaemonize yesport 6382dir "/opt/soft/redis/data"logfile "6382.log"
用Docker启动Redis
启动容器
$ docker pull redis:latest # 拉取最新版本的redis
$ docker run \ # 启动redis容器
-p 6379:6379 \ # 绑定本机6379端口到容器的6379端口
-v $PWD/data:/data \ # 挂载本机当前目录下的data目录到容器中/data目录,作为redis工作目录
-v $PWD/conf/redis-6379.conf:/etc/redis/redis.conf \ # 挂载配置文件
--name my-redis \ # 指定容器名
-d \ # 容器以守护态运行
redis redis-server /etc/redis/redis.conf # 指定镜像和启动命令
特别注意:
在使用Docker启动Redis时,配置文件中,千万不要添加 daemonize yes 这一项,否则容器启动后,将立即退出。因为对于容器来说,前台已经没有任何程序在执行了!
容器启动后就可以正常访问redis服务,和非容器化的Redis服务是完全一样的。
通过redis-cli访问
当我们使用Docker启动Redis时,通常我们不会下载Redis安装包并在本地安装redis-cli。若想使用redis-cli来访问,需要通过Redis镜像再启动一个容器,在其中运行redis-cli,并连接到Redis服务容器。这里的关键是,如何实现两个容器的互联。
最简单的方式,是通过 --link 参数,将Redis服务容器链接到redis-cli容器中:
$ docker run -it \
--link my-redis:redis \ # 将my-redis容器链接到本容器中,并重命名为redis。Docker可通过DNS服务将redis解析为Redis服务的IP地址。
--rm \
redis redis-cli -h redis -p 6379 # -h参数指定host,这里的host就是上面链接过来的redis
不过, --link 的方式已经过时,将来可能会被移除。官方推荐的方式,是通过自定义网络的形式,将Redis服务和Redis-CLI容器都放到同一个自定义网络中,从而实现互联。
参考:


