在大数据生产环境中,常常将频繁使用的结果数据存到的内存数据库,即Redis中,因为内存的速度是磁盘速度的1000+倍。本节就来介绍Redis的相关知识。
Redis 官网:https://redis.io/
Redis 在线测试:http://try.redis.io/
Redis 全版本链接:http://download.redis.io/releases/
本节用到的安装介质下载:redis-5.0.2.tar.gz 提取码:lhwb
1.什么是Redis
(1)Redis简介
Redis,全称是Remote Dictionary Server,即远程字典服务器,是一个由Salvatore Sanfilippo写的key-value存储系统。Redis是一个完全开源且免费、使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型的Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String)、哈希(Map)、列表(list)、集合(sets) 和 有序集合(sorted sets)等类型。
Redis的前身是Memcached。Memcached也是将数据存储到内存中,但是Memcached不能叫做数据库,只能叫缓存,因为它不能持久化,并且Memcached没有丰富的数据类型。Redis弥补了Memcached的这两大不足。
Redis 与其他 Key-Value 缓存产品相比,有以下三个特点:
- Redis不仅支持简单的key-value类型的数据,同时还提供list、set、zset、hash等复杂数据结构的存储。
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis持久化有RDB和AOF两种方式。
- Redis支持数据的备份,即master-slave模式的数据备份:实现了读写分离,提高速度。
(2)Redis的优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
(3)Redis与其他key-value存储的区别
- Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
- Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
2.安装配置Redis
Redis是用C语言开发的,需要先安装gcc编译器,然后下载源码包,最后进行安装配置。
(1)安装gcc编译器
# yum install -y gcc
(2)解压Redis安装包
# cd /root/tools
# tar -zxvf redis-5.0.2.tar.gz
(3)编译安装
# cd redis-5.0.2
# make
# make PREFIX=/root/trainings/redis-5.0.2 install
(4)修改Redis的配置文件
从源码包中拷贝配置文件redis.conf放到REDIS_HOME/conf中,根据需求修改配置文件:
# cd /root/trainings/redis-5.0.2
# mkdir conf
# cp /root/tools/redis-5.0.2/redis.conf conf/
# vim conf/redis.conf
92行:port 6379 默认端口(多个实例需要以端口区分)
136行:daemonize yes 是否以后台方式运行
3.启动Redis服务器
切换到REDIS_HOME目录:
# cd /root/tools/redis-5.0.2
(1)运行redis-server命令:使用默认配置,以前台方式启动
image# bin/redis-server
退出前台:Ctrl+C
(2)运行redis-server命令:使用自定义配置,如刚才配置的后台启动
# bin/redis-server conf/redis.conf
6612:C 04 Dec 2018 23:40:20.336 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
6612:C 04 Dec 2018 23:40:20.336 # Redis version=5.0.2, bits=64, commit=00000000, modified=0, pid=6612, just started
6612:C 04 Dec 2018 23:40:20.336 # Configuration loaded
查看Redis进程:
# ps -ef|grep redis
root 6613 1 0 23:40 ? 00:00:00 bin/redis-server 127.0.0.1:6379
root 6618 1894 0 23:40 pts/0 00:00:00 grep --color=auto redis
退出后台:
- 退出一个:# kill -9 6613
- 退出全部:# killall redis-server
4.启动Redis客户端
(1)默认连接本机(127.0.0.1)的Redis服务器的默认6379端口:
# bin/redis-cli
127.0.0.1:6379>
(2)连接远程主机的Redis服务器:
# bin/redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379>
(3)退出客户端
127.0.0.1:6379>quit
或者 Ctrl+C
5.Redis相关命令介绍
Redis一共提供了下面6中功能:
# ls bin
redis-benchmark # redis压力测试工具
redis-check-aof # 检查AOF日志的工具
redis-check-rdb # 检查RDB快照的工具
redis-cli # redis命令行客户端
redis-sentinel # 哨兵机制:实现Redis的HA
redis-server # redis的服务器端
网友评论