什么是redis?
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API并提供多种语言的 API的非关系型数据库。
redis官网地址:redis.io
redis的优势
1.性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
2.丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
3.原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
4.丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性
redis支持的数据类型
String字符串:set key value
List(列表)
redis的持久化存储
Redis 是一个内存数据库,与传统的MySQL,Oracle等关系型数据库直接将内容保存到硬盘中相比,内存数据库的读写效率比传统数据库要快的多(内存的读写效率远远大于硬盘的读写效率)。但是保存在内存中也随之带来了一个缺点,一旦断电或者宕机,那么内存数据库中的数据将会全部丢失。
Redis 提供了两种持久化方式:RDB(默认) 和AOF
RDB
RDB是Redis用来进行持久化的一种方式,是把当前内存中的数据集快照写入磁盘,也就是 Snapshot 快照(数据库中所有键值对数据)。恢复时是将快照文件直接读到内存里。
AOF
RDB 持久化存在一个缺点是一定时间内做一次备份,如果redis意外down掉的话,就会丢失最后一次快照后的所有修改(数据有丢失)。
持久化方式 AOF 则是通过保存Redis服务器所执行的写命令来记录数据库状态。
redis安装
1.官网下载Redis 压缩包,地址 http://redis.io/download
2. 压缩包执行解压操作并进行编译
# tar xzf redis-x.x.x.tar.gz
# cd redis-x.x.x/
# make && make install
编译需要gcc和gcc-c++编译器,如未安装,先yum安装gcc和gcc-c++
除此之外,编译时还可能出现此问题:
zmall.h:50:31:fatal error:jemalloc/jemalloc.h:No such file or directory
解决方法:
make MALLOC=libc
启动redis:
$ cd src
$ ./redis-server
这种方式启动redis 使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件使用下面命令启动。
$ cd src
$ ./redis-server ../redis.conf
启动客户端
$ cd src
$ ./redis-cli