Redis中通用操作及数据持久化

Keys通用操作:
  1. 显示所有键列:keys *
  2. 指定开头键列:keys [*]?
  3. 删除:del 键...
  4. 判断存在:exists 键
  5. 重命名:rename 旧键名 新键名
  6. 设过期时间(单位是s秒):expire 键 [seconds]
  7. 查过期时间:ttl 键
  8. 键的值类型:type 键
  9. 清空缓存:flushall


Redis中数据库特性:
  1. 每个Redis实例有16个数据库,角标从0~15,默认为0,也可以通过select来选择数据库。
    比如:select 1,选择1号数据库。
  2. move用于在不同数据库之间移动数据。比如:move myset 1,表示移动myset这个key到1号数据库。
  3. 开启事务会将任务放到queue中,当提交事务时逐个执行。

命令:
  1. 切换数据库:select [0~15]
  2. 移动数据到指定数据库:move name databaseIndex
  3. 开启事务:multi
  4. 提交事务:exec
  5. 回滚事务:discard 相当于rollback


数据持久化:

Redis高性能是因为所有的数据都是存储在内存当中,但是使Redis重启后仍然能保持数据不丢失,就需要将数据从内存当中同步到内存上,这个过程称为持久化,常用的有两种方式:
  1. RDB:Redis默认支持的,不需要进行配置,在指定的时间间隔内将内存中的数据快照写入磁盘
  2. AOF:以日志的形式记录服务器所处理的每个操作,在Redis服务器启动时会读取该日志文件来重新构建数据库,保证启动后的数据是完整的。默认是关闭的,需要我们手动开启
    
我们也可以将redis持久化关闭,关闭以后可以将redis看成一个缓存.用作缓存

还可以同时使用 RDB和AOF 两种方式保证数据持久化,使数据更完整


RDB:

 优点:
  1. 可将数据库保存为一个文件,便于备份
  2. 可方便移植
  3. 性能最大化,可开启小的进程处理持久化操作

 缺点:
  1. 不能保证数据完整性,例如在下一次保存快照之前宕机了,那么这部分的数据可能就丢失了。
  2. 持久化需要fork一个子进程来处理,当数据过大这将会延迟几百到一千毫秒

 配置过程:
  1. 编辑redis.conf文件:vim redis.conf
  2. 找到时间戳, save <seconds> <changes>
    save 900 1:900s之内键值发生1次改变则执行持久化
    save 300 10:300s之内键值发生10次改变则执行持久化
    save 60 100000:60s之内键值发生100000次改变则执行持久化
  3. 所有的数据默认保存在rdb文件中,rdb文件默认保存在redis安装目录



AOF:

优点:
  1. 同步写入频率高,效率低,方式最安全.
  2. 写入模式采用append模式,追加模式, 不破坏写入日志数据,在redis中追加也不会破坏文件.如果在写入一半的时候出现熊崩溃问题,redis下次启动之前通过 redis-check-aof这个工具来帮助数据一致性问题
  3. 当数据过大,可启动修改重写机制,redis采用append的这种机制,将新的修改的数据不断地写到老的磁盘文件当中,同时创建新的文件保存操作,保证修改数据的更新
  4. 日志文件格式清晰,便于重建数据

缺点:
  1. 对于相同数据集aof文件比rdb文件大一些
  2. 根据同步策略不同,效率比rbd低.

配置过程:
  1. 编辑redis.conf:vim redis.conf
  2. 找到appendonly,需要改成yes(因为默认使用rdb方式所以默认为no),同时还需要在下面配置同步策略:
    • Appendfsync always::修改一次就同步到磁盘上(安全性最高)
    • Appendfsync everysec:每秒会向硬盘中同步一次
    • Appendfsync no:不同步到硬盘中
  3. Redis的目录下会产生appendonly.aof这个文件,用来保存appendonly的之前的增删改操作,
  4. 停掉redis  ./bin/redis-cli shutdown
  5. 重启redis  ./bin/redis-servers ./redis.conf
  6. flushall清空数据库
  7. 进入appendonly.aof删除flushall可以恢复数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值