redis官方网站 https://redis.io/
redis中文官网 http://redis.cn/
本文使用 redis-5.0.3 版本,在 Linux 系统中安装。
一、Redis 介绍
Redis 是一个高性能的 key-value 的 NoSQL 数据库。
1、NoSQL
在传统关系型数据库之后,新出现的一类数据库(not only sql)。
1.1 NoSQL 的特点:
- 不支持SQL语法
- 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是 K-V 形式
- NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景
NoSQL中的产品种类相当多,比如:
- Mongodb
- Redis
- Hbase hadoop
- Cassandra hadoop
2、NoSQL 和 SQL 数据库的比较
- 适用场景不同:sql数据库适合用于关系比较复杂的数据查询场景,nosql反之
- 对事务的支持:sql数据库对事务的支持非常完善,而nosql基本不支持事务
- 两者在不断地取长补短,呈现融合趋势
3、Redis 简介
- Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
- Redis是 NoSQL技术阵营中的一员,它通过多种键值数据类型来适应不同场景下的存储需求,借助一些高层级的接口使用其可以胜任多种场景,如缓存、消息队列、数据库存储等。
3.1 Redis特性
Redis 与其他 key - value 缓存产品相比,有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
3.2 Redis 优势
- 性能极高: Redis读取速度达到110000次/s,写速度达到81000次/s 。
- 丰富的数据类型: Redis支持二进制类型的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子性: Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
- 丰富的特性: Redis还支持 publish/subscribe, 通知, key 过期等等特性。
3.3 Redis应用场景
- 用来做缓存(ehcache/memcached): redis的所有数据是放在内存中的(内存数据库)
- 可以在某些特定应用场景下替代传统数据库——比如社交类的应用
- 在一些大型系统中,巧妙地实现一些特定的功能:session共享、购物车等。
二、安装
在此演示 Linux 系统中安装 Redis。
1、下载
目前最新的稳定版本是 5.0.3,我这里使用最新版本:
- 进入 /opt 目录(也可以是其它目录),执行下列命令,会下载到当前目录下:
- 下载成功后,如下图所示:
2、解压和编译
依次执行下列命令:
# 解压安装包到当前目录下
tar xzf redis-5.0.3.tar.gz
# 进入解压后的目录中
cd redis-5.0.3
3、执行 make 编译命令
在执行 make 命令之前,需要确保当前系统已经安装 c++ 环境。
# 执行如下命令安装 gcc 环境
yum -y install gcc gcc-c++ kernel-devel
# 若上面命令出现 gitlab-ee 安装报错,则尝试下面命令
yum --disablerepo=gitlab_gitlab-ee -y install gcc gcc-c++ kernel-devel
安装成功后,如下图所示:
执行 make 命令,编译 redis 源码,并进行测试:
# make 编译,时间会比较长
make
# 测试
make test
在 make test 过程中可能会出现如下错误:
You need tcl 8.5 or newer in order to run the Redis test"
make: *** [test] Error 1
出现这种报错时,按如下步骤安装 tcl 即可:
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
cd /usr/local/tcl8.6.1/unix/
./configure
make && make install
tcl 安装成功后,再执行 make test
就成功了。
4、make install
返回 redis 目录中(我这里是 /opt/redis-5.0.3
),执行 make install
。
默认会将 redis 的可执行命令安装到 /usr/local/bin/
目录, 其中包含如下几个命令工具:
redis-server # redis服务器
redis-cli # redis命令行客户端
redis-benchmark # redis性能测试工具
redis-check-aof # AOF文件修复工具
redis-check-rdb # RDB文件检索工具
三、配置文件
Redis 配置文件位于解压目录下:
/opt/redis-5.0.3/redis.conf
关键配置选项
-
bind 127.0.0.1
:设置绑定 ip,默认是本机 ,若要远程访问,需要绑定一个真实的 ip; -
port 6379
: 设置端口,默认是 6379; -
daemonize yes
:设置 redis 是否以守护进程运行,默认是 no,推荐设置为 yes,不会在命令行阻塞; -
pidfile /var/run/redis_6379.pid
:当 redis 以守护进程运行时,默认会把 pid 写入该文件中,也可以在此自定义; -
databases 16
:数据库的数量,范围为 0-15,默认连接的是 0,可以使用select <dbid>
切换数据库; -
dbfilename dump.rdb
:指定本地数据库文件名; -
dir ./
:指定本地数据库的存放目录,这里必须是个目录,不能是文件名; -
logfile /var/log/redis/redis-server.log
:设置日志文件; -
slaveof
:用于配置主从复制,类似于双机备份。
启动 Redis
可以直接运行 redis-server
命令来启动 redis 服务端。
连接 redis 客户端:
redis-cli
默认连接到 127.0.0.1:6379
运行测试命令:
127.0.0.1:6379> ping
PONG
切换数据库:
redis 数据库没有名称,默认有16个,通过 0-15 来标识,连接 redis 默认选择第一个数据库。
select n
切换数据库,n 的范围是 0-15
127.0.0.1:6379> select 10
OK
127.0.0.1:6379[10]> select 0
OK
127.0.0.1:6379>