Redis通用命令
Redis五种数据类型,String,hash,list,set,有序set。
- keys pattren:获取所有与pattern匹配的key,返回所有与该key匹配的keys。*表示任意一个或多个字符,?表示任意一个字符。
- keys *:查询所有的key。?通配符,表示一个任意字符。*表示0个或多个任意字符。
- del key1、key2...
- exists key :判断该key是否存在,1代表存在,0代表不存在;
- rename key newkey:为key重命名;
- expire key:设置key的生存时间,默认是永久,单位为秒;
- ttl key:查看剩余生存时间,返回-2为不存在,-1为永久
消息订阅与发布
- subscribe:订阅频道
- psubscribe:批量订阅频道
多数据库
- redis也是有数据库的,但是已经提前创建好了。默认有16个数据库,名字为从0~15。
- select 数据库名:切换数据库
- 数据库与数据库之间,键值对不能共享
- move newkey 1:将当前库的key移植到1号库中
- flushdb:清空当前数据库
- flushall:清空所有数据库
redis事务
为了进行批量化操作,与MySQL的事务不同。
- multi:开启事务
- exec:提交事务
- discard:回滚事务
了解命令
- dbsize:返回当前数据库中key的数目
- info:查看redis数据
持久化
- 任何增删改语句,都是在硬盘上的操作。
而redis所有的增删改,数据都是在内存中进行操作。断电以后,内存中的数据不存在。部分的数据会丢失。
RDB:是redis默认持久化机制。相当于照快照,占用硬盘空间小。适用于灾难备份。
缺点:小内存机器不适合使用。容易造成内存内存不足直接死机。丢失数据。
何时进行照快照:
- 服务器正常关闭时,会照一次快照
- key满足一定条件,会照一次快照
在redis.conf中已经设置了三种照快照的触发方式。
AOF:使用日志功能保存数据操作
默认AOF机制是关闭的(appendonly no)
每秒同步(everysec)
每修改同步(always):只要有key的变化语句,就执行AOF
AOF操作只会保存导致key变化的语句
缺点:日志文件会非常大
恢复比较慢,备份也慢
优点:适用于内存小的机器
所以,实际开发中都会使用默认的RDB机制。