keys * (可以进行模糊匹配,例如:list*) 返回满足的所有key
exists 是否存在指定的key
expire 设置某个key的过期时间,使用ttl 查看剩余时间
persist 取消过期时间
select 数据库的索引 数据库的索引是0到15 默认的就是索引为0的数据库
move key 数据库的索引 移动key到其他数据库
randomkey 随机返回数的一个key
rename 重命名key
echo 打印命令
dbsize 查看当前数据库的key数量
info 获取数据库信息
config get 返回相关配置信息 config get * 返回所有的配置,就是返回redis.conf中的配置信息
flushdb 清空当前数据库 flushall 清空所有数据库
redis事务
multi开启事务
exec执行事务
redis中的事务还是不太完善,从上面的执行结果就可以看出
redis持久化机制
redis是一个支持持久化的内存数据库,也就是说redis需要将内存中的数据同步到硬盘来保存持久化。
redis持久化的两种方式:
1.snapshotting(快照)默认方式,将内存中以快照的方式写入二进制文件中,默认是dump.rdb,可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过m个key修改就自动做快照。
snapshotting设置:
save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
save 300 10 #300秒内如果超过10个key被修改,则发起快照保存
save 60 1000
这种方式对实时性要求不高,可能会存在数据丢失,在生产环境一定不能用这种方式
2.append-only file(缩写aof) 的方式(有点类似于oracle日志)由于快照方式是在一定时间间隔做一次,所以可能发生redis意外down的情况就会丢失最后一次快照的所有修改的数据、aof比快照方式有更好的持久化性,是由于在使用aof时,redis会将每一个收到的写命令都通过write函数追加到命令中,当redis重新启动时会重新执行文件中保存的写命令来在内存中重建这个数据库的内容,这个文件在bin目录下:appendonly.aof。aof不是立即写到磁盘上,可以通过配置文件修改强制写到磁盘中。
aof设置:
appendonly yes //启动aif持久化方式有三种修改方式
1.appendfsync always //收到写命令就立即写入磁盘,效率最慢,但是保证完全的持久化(在生产环境中使用这种方式)
2.appendfsync everysec //每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中
3.appendfsync no //完全依赖os 性能最好,持久化没保证
appendonly yes 开启aof
appendfilename "" 保存快照的文件名,保存路径是redis.conf中dir的值
appendfsync always 收到写命令就立即写入磁盘
发布与订阅消息
使用subscribe 【频道】进行订阅监听
使用publish 【频道】【发布内容】进行发布消息广播