非关系型数据库产生背景
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
[root@localhost opt]# tar zxvf redis-5.0.7.tar.gz -C /opt
[root@localhost opt]# cd /opt/redis-5.0.7/
[root@localhost redis-5.0.7]# make
[root@localhost redis-5.0.7]# make PREFIX=/usr/local/redis/ install #指定redis目录并安装
[root@localhost redis-5.0.7]# cd /usr/local/redis/
[root@localhost redis]# ls
bin
[root@localhost redis]# cd bin/
[root@localhost bin]# ls
redis-benchmark redis-check-rdb redis-sentinel
redis-check-aof redis-cli redis-server
执行redis配置文件脚本,并进行配置
[root@localhost bin]# cd /opt/redis-5.0.7/utils/ #回到redis源码包解压目录
[root@localhost utils]# ./install_server.sh #执行脚本进行配置
Welcome to the redis service installer
This script will help you easily set up a running redis server
Please select the redis port for this instance: [6379] #选择redis默认接口,直接回车
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] #选择redis默认配置文件名称,直接回车
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] #选择默认redis日志文件名称,直接回车
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379] #选择默认接口的默认数据文件,直接回车
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server] #选择redis可执行文件路径
Selected config: #选择的配置清单展示
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort. #直接回车完成配置
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!
优化redis配置
[root@localhost utils]# ln -s /usr/local/redis/bin/* /usr/local/bin/ #将redis命令创建软连接,便于系统识别
[root@localhost utils]# netstat -ntap |grep 6379
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 72538/redis-server
[root@localhost bin]# service redis_6379 stop #关闭redis服务
Stopping ...
Redis stopped
[root@localhost bin]# service redis_6379 start #开启redis服务
Starting Redis server...
[root@localhost bin]# netstat -ntap |grep 6379 #检查redis开启情况
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 72620/redis-server
tcp 0 0 127.0.0.1:6379 127.0.0.1:55370 TIME_WAIT -
[root@localhost bin]# redis-cli
127.0.0.1:6379> keys *
(empty list or set)
设置监听端口,启动服务
[root@localhost bin]# vim /etc/redis/6379.conf #修改配置文件
bind 127.0.0.1 192.168.110.15 #添加监听端口
[root@localhost bin]# service redis_6379 restart
[root@localhost bin]# redis-cli -h 192.168.179.124 -p 6379 #指定端口登录
192.168.179.124:6379> keys *
(empty list or set)
获取命令帮助
help @:获取中的命令列表
help :获取某个命令的帮助
help :获取可能帮助的主题列表
Redis-cil命令行工具
set:存放数据
get:获取数据
key相关命令
keys:获取符合规则的键值列表
exists:判断键值是否存在
del:删除当前数据库的指定key
type:获取key对应的value值类型
rename(覆盖)l renamenx(不覆盖):对已有的key进行重命名
dbsize:查看当前数据库中key的数目
redis-benchmark测试工具
-h:指定服务器主机名
-p:指定服务器端口
-c:指定并发连接数
-n:指定请求数
-d:以字节的形式指定SET/GET值的数据大小
-q:强制退出Redis,仅显示query/sec值
[root@localhost redis]# cd /var/lib/redis/6379/
[root@localhost 6379]# ls
dump.rdb
[root@localhost 6379]# vim /etc/redis/6379.conf
save 900 1 #900秒之内至少一次写操作
save 300 10 #300秒之内至少发生10次写操作
save 60 10000 #60秒之内发生至少10000次写操作
... #只要满足其一都会触发快照操作,注释所有的save项表示关闭RDB
dbfilename dump.rdb #RDB文件名称
dir /var/lib/redis/6379 #RDB文件路径
rdbcompression yes #是否进行压缩
根据AOF文件恢复数据
[root@localhost log]# cd /var/lib/redis/6379/
[root@localhost 6379]# ls
appendonly.aof dump.rdb
配置文件选项
[root@localhost 6379]# vim /etc/redis/6379.conf
appendonly yes #开启AOF持久化
appendfilename "appendonly.aof" #AOF文件名称
# appendfsync always #同步持久化,每次发生数据变化会立刻写入磁盘
appendfsync everysec #默认推荐,每秒异步记录一次(默认值)
# appendfsync no #不同步,交给操作系统决定如何同步
aof-load-truncated yes #忽略最后一条可能存在问题的指令
[root@localhost 6379]# vim /etc/redis/6379.conf
no-appendfsync-on-rewrite no
#在日志进行BGREWRITEAOF时,如果设置为yes表示新写操作不进行同步fsync,只是暂存在缓冲区里,避免造成磁盘IO操作冲突,等重写完成后在写入。Redis中默认为no
auto-aof-rewrite-percentage 100
#当前AOF文件大小是上次日志重写时AOF文件大小两倍时,发生BGREWRITEAOF操作
auto-aof-rewrite-min-size 64mb
#当前AOF文件执行BGREWRITEAOF命令的最小值,避免刚开始启动Reids时由于文件尺寸较小导致频繁的BGREWRITEAOF
查看Redis内存使用
[root@localhost 6379]# redis-cli
127.0.0.1:6379> info memory
# Memory
used_memory:853320 #内存使用总量
used_memory_human:833.32K
used_memory_rss:3473408
......
allocator_frag_ratio:1.24
allocator_frag_bytes:406552
allocator_rss_ratio:4.44 #内存碎片率