-
使用场景:游戏排名、微博热点话题等等
查看全部 -
sorted-set中的每一个成员都有一个分数与之关联,redis通过这个分数来为集合中的成员进行排序(成员必须唯一,但是分数可以重复)
查看全部 -
修改配置文件后,重启redis
flushall :清空数据库
查看全部 -
appendonly no
默认情况下AOF这种方式没打开
查看全部 -
AOF
优势:
1、更高的数据安全性
同步策略:每秒同步,每修改同步、不同步
每秒同步:异步完成,效率高,系统出现宕机,那么这一秒中修改的数据就会丢失
每修改同步:可以看作同步持久化,么一次发生数据的变化,都会立即写到磁盘当中,效率低,但是最安全
2、对日志文件的写入操作,采用的是追加模式(append),因此在写入过程中,即使出现了宕机的情况,也不会破坏日志文件中已经存在的内容。如果本次写入进行到一半就出现宕机,那么这种方式也不必担心,redis在下一次启动之前,可以通过redis-check-aof这个工具,帮助我们解决数据一致性的问题
3、如果日志过大,redis可以自动启动重写机制,redis以append模式不断的将修改的数据写入到老的磁盘文件当中,同时redis会创建一个新的文件,用于记录此期间产生的哪些修改命令被执行。因此,在进行重写切换的时候,可以更好的去保证数据的安全性
4、AOF包含一个格式清晰易于理解的日志文件用于记录所有的修改操作,也可以通过这个文件完成数据的重建
劣势
1、对于相同数量的数据集而言,AOF的文件要比RDB的文件大一些
2、根据同步策略的不同,AOF在效率上往往低于RDB
查看全部 -
dbfilename dump.rdb 默认文件名
dir ./ 保存在当前路径下
查看全部 -
save 900 1 :900秒内如果超过1个key被修改,则发起快照保存
save 300 10: 300秒内容如超过10个key被修改,则发起快照保存
save 60 10000
查看全部 -
优势:
1、redis的数据库只包含一个文件,对于文件备份来说很完美
2、备份:每个小时归档一次最近24小时的数据,同时每天归档一次最近30天的数据,那么当系统出现灾难性故障的时候,可以恢复(对于灾难恢复来说RDB是非常好的选择,可以将一个单独的文件压缩后转移到其他的存储介质上)
3、性能最大化:对于redis进程而言,在开始持久化的时候,它唯一需要做的是,弄出一些子进程,之后的由子进程完成这些持久化的工作,极大的避免服务器进程执行IO操作
4、与AOF相比优势:启动效率更高
劣势:
1、想保证数据的高可用性(最大限度避免数据的丢失),那RDB不是一个很好的选择(如果系统在定时持久化之前发生故障,那么数据还没来得及往磁盘上写,数据就已经丢失了)
2、子进程协助完成持久化,因此当数据集很大的时候,可能会导致服务器停止几百毫秒
查看全部 -
1、获取所欲的key:keys *
2、以my开头的key:keys my*
3、删除某个指定的key:del myhash myset1
4、某个key是否存在(1存在 0不存在):exists myset
5、对key进行重命名:rename company 公司(将company重命名为公司)
6、设置过期时间(单位是秒):expire num 1000
7、查看key所剩的有效时间(如果没有设置,返回-1):ttl num
8、获取key的类型:type num
查看全部 -
重点:学会使用程序操作redis
查看全部 -
两种持久化方式:rdb、aof 可以单独使用、也可以结合起来使用
RDB持久化:默认支持、不需要配置
在指定的时间间隔内,将内存中的数据集快照写入磁盘
AOF持久化:以日志的方式,记录服务器所处理的每一个操作,在redis启动的时候会读取该文件,来重新构建数据库,保证启动后数据库中的数据是完整的
无持久化:通过配置禁用redis持久化的功能,这样redis只是一个缓存的工具
同时使用RDB和AOF
查看全部 -
高性能:所有的数据都存储在内存当中
持久化:为了让redis在重启之后,数据不丢失,就需要将数据从内存同步到硬盘当中
查看全部 -
使用multi、exec、discard来实现事务
multi:开启事务(begin)
exec:提交(commit)
discard:回滚(rollback)
事务中,所有命令都会串行执行,事务执行期间,redis不会为其它的客户端提供服务,从而保证命令原子化执行
查看全部 -
将一个数据库中的某个key移到另一个数据库中,使用命令move
move myset 1
移动该数据库中的myset到1号数据库中
查看全部 -
一个redis实例可以包含多个数据库,客户端可以指定连接某个redis实例的某个数据库,一个redis实例最多可以提供16个数据库(0-15),客户端默认连接的是0号数据库
使用select来具体连接某个数据库(select 1)
类似:mysql中创建多个数据库
查看全部
举报