简介
简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。
优势
性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis与其他key-value存储有什么不同?
Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
安装过程
下载
https://redis.io/ 下载地址
我下载的是目前最新版 4.0.6 (2017年12月29日)
解压
下载完成后,打开命令行工具,执行解压命令
tar zxvf redis-4.0.6.tar.gz
目录更改
将解压后文件夹放到/usr/local
mv redis-4.0.6 /usr/local/
切换到相应目录
cd /usr/local/redis-4.0./
编译测试
编译测试
sudo make test(如果提示错误,请自行忽略,如读者知道错误也可以把错误评论到下面,因为我没有找到错误原因,并且继续往下配置,可以使用)
编译安装
sudo make install
启动redis
redis-server
配置
在redis目录下建立bin,etc,db三个目录
sudo mkdir /usr/local/redis-4.0.6/bin
sudo mkdir /usr/local/redis-4.0.6/etc
sudo mkdir /usr/local/redis-4.0.6/db
把/usr/local/redis/src目录下的mkreleasehdr.sh,redis-benchmark, redis-check-rdb, redis-cli, redis-server拷贝到bin目录
cp /usr/local/redis-4.0.6/src/mkreleasehdr.sh ./bin/
cp /usr/local/redis-4.0.6/src/redis-benchmark ./bin/
cp /usr/local/redis-4.0.6/src/redis-check-rdb ./bin/
cp /usr/local/redis-4.0.6/src/redis-cli ./bin/
cp /usr/local/redis-4.0.6/src/redis-server ./bin/
拷贝 redis.conf 到 /usr/local/redis/etc下
cp /usr/local/redis-4.0.6/redis.conf /usr/local/redis-3.2.8/etc
修改redis.conf
#修改为守护模式
daemonize yes
#设置进程锁文件
pidfile /usr/local/redis-3.2.8/redis.pid
#端口
port 6379
#客户端超时时间
timeout 300
#日志级别
loglevel debug
#日志文件位置
logfile /usr/local/redis-3.2.8/log-redis.log
#设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
databases 16
##指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
#save <seconds> <changes>
#Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
#指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,
#可以关闭该#选项,但会导致数据库文件变的巨大
rdbcompression yes
#指定本地数据库文件名
dbfilename dump.rdb
#指定本地数据库路径
dir /usr/local/redis-3.2.8/db/
#指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能
#会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有
#的数据会在一段时间内只存在于内存中
appendonly no
#指定更新日志条件,共有3个可选值:
#no:表示等操作系统进行数据缓存同步到磁盘(快)
#always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
#everysec:表示每秒同步一次(折衷,默认值)
appendfsync everysec
启动服务
./bin/redis-server etc/redis.conf
查看日志
tail -f log-redis.log
打开redis客户端
./bin/redis-cli
完成
参考地址
http://www.runoob.com/redis/redis-intro.html
https://www.cnblogs.com/feijl/p/6879929.html