bind:监听的主机地址
port:端口(默认6379)
daemonize yes:启用守护进程
pidfile:指定PID文件
loglevel notice:日志级别
logfile:指定日志文件
连接本地数据库
/usr/local/redis/bin/redis-cli
127.0.0.1:6379>
连接远程数据库
redis-cli -h 192.168.140.10 -p 6379
192.168.140.10>
redis-benchmark [option] [option value]
-h: 指定服务器主机名
-p:指定服务器端口
-s:指定服务器socket
-c:指定并发连接数
-n:指定请求数
-d:以字节的形式指定SET/GET值的数据大小
-k:1=keep alive 0=reconnect
-r:SET/GET/INCR使用随机key,SADD使用随机值
-P:通过管道传输<numreq>请求
-q:强制退出redis,仅显示query/sec值
---csv:以CSV格式输出
-l:生成循环,永久执行测试
-t:仅运行以逗号分隔的测试命令列表
-I:Idle模式,仅打开N个idle 连接并等待
[root@server ~]# redis-benchmark -h 192.168.140.20 -p 6379 -c 100 -n 10000
//向IP地址为192.168.140.20,端口为6379的Redis服务器发送100个并发连接与10000个请求测试性能
Redis支持多数据库,默认支持16个数据库,0-15命名;
多数据库相互独立,互不干扰;
多数据库常用命令:
多数据库间切换
多数据库间移动数据
清除数据库内数据
select index
//其中index 表示数据库的序号,而使用redis-cli 连接Redis数据库后,默认使用的是序号为0的数据库
127.0.0.1:6379> select 2 //此时表示从数据库0切换到数据库2
OK
127.0.0.1:6379[2]> select 10 //切换到数据库10
OK
127.0.0.1:6379[10]>
move key dbindex
//其中“key“表示当前数据库的目标键,"dbindex"表示目标数据库的序号
127.0.0.1:6379> move q 10 //移动q到数据库10
(integer) 1
127.0.0.1:6379> get q
(nil)
127.0.0.1:6379> select 10 //切换到数据库10
OK
127.0.0.1:6379[10]> keys * 列出key中的所有关键词
1) "q"
Redis数据库的整库数据删除主要分为两个部分:
清空当前数据库数据,使用 FLUSHDB 命令实现
清空所有数据库的数据,使用FLUSHALL命令实现(一般不用)
应用示例
127.0.0.1:6379> select 10 //切换到数据库10
OK
127.0.0.1:6379[10]> keys * //列出key中的所有关键词
1) "q"
127.0.0.1:6379[10]> get q //输出q键值
"10"
127.0.0.1:6379[10]> flushdb //清除当前数据库中的数据
OK
127.0.0.1:6379[10]> keys * //列出key中的所有关键词
(empty list or set)
[root@server1 ~]# redis-cli //连接数据库
192.168.140.20:6379> keys s*
1) "set1"
2) "set2"
192.168.140.20:6379> exists set3
(integer) 0
192.168.140.20:6379> exists set1
(integer) 1
192.168.140.20:6379> del set1
(integer) 1
192.168.140.20:6379> set string1 77
OK
192.168.140.20:6379> type string1
string
192.168.140.20:6379> type hash1 //获取hash1对应的vlane值类型
hash
rename命令进行重命名时,无论目标key是否存在都进行重命名,且源key的值会覆盖目标key 的值。
在实际使用过程中,建议先用exists命令查看目标 key是否存在,然后再决定是否执行rename命令,以避免覆盖重要数据
命令格式为 rename 源key 目标key
192.168.140.20:6379> set bw 1 //添加键值
OK
192.168.140.20:6379> set cw 2
OK
192.168.140.20:6379> rename cw bw //重命名cw覆盖bw键值
OK
192.168.140.20:6379> get bw
"2"
其命令格式与 rename 的命令格式除命令关键字不同外基本相同,renamenx源key目标key。
使用renamenx命令进行重命名时,如果目标key存在则不进行重命名
命令格式:renamenx 源key 目标key
192.168.140.20:6379> set bw 1
OK
192.168.140.20:6379> set cw 2
OK
192.168.140.20:6379> renamenx cw bw //重命名cw覆盖bw键值,重命名失败
(integer) 0
概述:
持久化分类:
[root@localhost ~]# vim /etc/redis/6379.conf
#RDB核心规则配置 save <指定时间间隔> <执行指定次数更新操作>,满足条件就将内存中的数据同步到硬盘
中。官方出厂配置默认是 900秒内有1个更改,300秒内有10个更改以及60秒内有10000个更改,则将内存中的
数据快照写入磁盘。
若不想用RDB方案,可以把 save "" 的注释打开,下面三个注释
#save ""
save 900 1 "这三项默认设置"
save 300 10
save 60 10000
dbfilename dump.rdb //RDB文件名称
dir /var/lib/redis/6379 //RDB文件路径
rdbcompression yes //是否进行压缩
#当RDB持久化出现错误后,是否依然进行继续进行工作,yes:不能进行工作,no:可以继续进行工作,可以通过info中的rdb_last_bgsave_status了解RDB持久化是否有错误
stop-writes-on-bgsave-error yes
#配置存储至本地数据库时是否压缩数据,默认为yes。Redis采用LZF压缩方式,但占用了一点CPU的时间。若关闭该选项,但会导致数据库文件变的巨大。建议开启。
rdbcompression yes
#是否校验rdb文件;从rdb格式的第五个版本开始,在rdb文件的末尾会带上CRC64的校验和。这跟有利于文件的容错性,但是在保存rdb文件的时候,会有大概10%的性能损耗,所以如果你追求高性能,可以关闭该配置
rdbchecksum yes
#指定本地数据库文件名,一般采用默认的dump.rdb
dbfilename dump.rdb
#数据目录,数据库会写入这个目录。rdb、aof文件也会写在这个目录
dir /var/lib/redis/6379
Redis默认不开启;
弥补RDB的不足(数据的不一致性);
采用日志的形式来记录每个写操作,并追加到文件中;
Redis 重启会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作;
AOF不是默认开启,要手动开启.RDB默认开启。
[root@localhost ~]# vim /etc/redis/6379.conf
'//Redis 默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。
appendonly no
appendfilename "appendonly.aof" //指定本地数据库文件名,默认值为 appendonly.aof
#aof持久化策略的配置
#no表示不执行fsync,由操作系统保证数据同步到磁盘,速度最快
always表示每次写入都执行fsync,以保证数据同步到磁盘
everysec表示每秒执行一次fsync,可能会导致丢失这1s数据
# appendfsync always '//always:数据要求高'
appendfsync everysec '//everysec:一般情况使用 '
# appendfsync no
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
'//设置允许重写的最小aof文件大小,避免了达到约定百分比但尺寸仍然很小的情况还要重写'
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
'//加载redis时,可以识别AOF文件以“redis”开头'
'//字符串并加载带前缀的RDB文件,然后继续加载AOF尾巴'
aof-use-rdb-preamble yes
配置命令详解
appendonly no
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
aof-load-truncated yes