五、redis 配置信息以及常用命令,java 语言程序设计基础篇第十一版 pdf
关于 redis 的介绍就不多说了,持久化,速度快,单线程,基于内存。
==================================================================
redis 的配置文件是 redis.conf。我们上次安装的时候把它放在了/use/local/redis/etc/redis.conf
,默认的配置文件应该在安装目录下的 src/redis.conf
配置文件的内容有很多
Redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用 yes 启用守护进程
daemonize no
当 Redis 以守护进程方式运行时,Redis 默认会把 pid 写入/var/run/redis.pid 文件,可以通过 pidfile 指定
pidfile /var/run/redis.pid
指定 Redis 监听端口,默认端口为 6379
port 6379
绑定的主机地址
bind 127.0.0.1
当 客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能
timeout 300
指定日志记录级别,Redis 总共支持四个级别:debug、verbose、notice、warning,默认为 verbose
loglevel verbose
日志记录方式,默认为标准输出,如果配置 Redis 为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null,如果需要存储日志可以设置具体文件名。
logfile “/home/gdmt/mastercom/redis-4.0.5/bin/log_master.log”
设置数据库的数量,默认数据库为 0,可以使用 SELECT 命令在连接上指定数据库 id
databases 16
指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
save
Redis 默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
分别表示 900 秒(15 分钟)内有 1 个更改,300 秒(5 分钟)内有 10 个更改以及 60 秒内有 10000 个更改。
指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大
rdbcompression yes
指定本地数据库文件名,默认值为 dump.rdb
dbfilename dump.rdb
指定本地数据库存放目录
dir “/home/mastercom/redis-4.0.5/bin”
设置当本机为 slav 服务时,设置 master 服务的 IP 地址及端口,在 Redis 启动时,它会自动从 master 进行数据同步
slaveof
当 master 服务设置了密码保护时,slav 服务连接 master 的密码
masterauth
设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH 命令提供密码,默认关闭
requirepass foobared
设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息
maxclients 10000
指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区
maxmemory
指定是否在每次更新操作后进行日志记录,Redis 在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis 本身同步数据文件是按上面 save 条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为 no
appendonly no
指定更新日志文件名,默认为 appendonly.aof
appendfilename appendonly.aof
上面那么多配置,我和大家一样没有都记住,只是了解一个大概,要用的时候能查就行,上面很多都是默认配置,感觉一般要设置的下面这几个
daemonize yes
port 端口号
bind ip
slaveof <masterip> <masterport>
requirepass foobared
==================================================================
exists(key):确认一个 key 是否存在
del(key):删除一个 key
type(key):返回值的类型
keys(pattern):返回满足给定 pattern 的所有 key
randomkey:随机返回 key 空间的一个
keyrename(oldname, ne
wname):重命名 key
dbsize:返回当前数据库中 key 的数目
expire:设定一个 key 的活动时间(s)
ttl:获得一个 key 的活动时间
move(key, dbindex):移动当前数据库中的 key 到 dbindex 数据库
flushdb:删除当前选择数据库中的所有 key--慎用
flushall:删除所有数据库中的所有 key--慎用
真正常用的就
exists key
del key
type key
dbsize
expire
set(key, value):给数据库中名称为 key 的 string 赋予值 value
get(key):返回数据库中名称为 key 的 string 的 value
getset(key, value):给名称为 key 的 string 赋予上一次的 value
mget(key1, key2,…, key N):返回库中多个 string 的 value
setnx(key, value):如果 key 不存在,添加 string,名称为 key,值为 value
setex(key, time, value):向库中添加 string,设定过期时间 time
mset(key N, value N):批量设置多个 string 的值
msetnx(key N, value N):如果所有名称为 key 的 string 都不存在 就添加
incr(key):名称为 key 的 string 增 1 操作
incrby(key, integer):名称为 key 的 string 增加 integer
decr(key):名称为 key 的 string 减 1 操作
decrby(key, integer):名称为 key 的 string 减少 integer
append(key, value):名称为 key 的 string 的值附加 value
substr(key, start, end):返回名称为 key 的 string 的 value 的子串
我认为常用的
set
get
mset
mget
incr
decr
评论