redis基础
一、五大数据类型
1、Redis键(key)
①、首先创建一些 key,并赋上对应值:
redis 127.0.0.1:6379> SET w3c1 redis OK redis 127.0.0.1:6379> SET w3c2 mysql OK redis 127.0.0.1:6379> SET w3c3 mongodb OK
②、查找以 w3c 为开头的 key:
redis 127.0.0.1:6379> KEYS w3c* 1) "w3c3" 2) "w3c1" 3) "w3c2"
③、获取 redis 中所有的 key 可用使用 *。
redis 127.0.0.1:6379> KEYS * 1) "w3c3" 2) "w3c1" 3) "w3c2"
2、Redis字符串(String)
单值单value
3、Redis列表(list)
单值多value
4、Redis集合(Set)
单值多value
5、Redis哈希(Hash)
KV模式不变,但V是一个键值对
6、 有序集合(sorted Zset)
二、数据持久化
2.1、RDB快照(snapshot)
默认情况下,Redis将内存数据库快照保存在名字为dump.rdb的二进制文件中
1、自动生成快照:例子:设置Redis在满足"60秒内有至少10000个键被改动"这一条件时,自动保存一次数据集:
save 60 10000
vi redis.conf内添加 save 900 1 save 300 10 save 60 10000 //60s内对redis的操作10000次,就会把内存写入到dump.rdb文件中
dbfilename:指明rdb名称
dir:声明rdb的目录
2、手动生成快照,直接执行save或者bgsave即可
RDB的两种生成snapshot的方法:save和bgsave
区别:save阻塞客户端命令,bgsave不会阻塞客户端命令
配置自动生产rdb文件后台使用的默认是bgsave方式
2.2、AOF(append-only file)
快照功能并不是非常耐久:如果Redis因为某些原因而造成故障停机,那么服务器将丢失最近写入、且仍未保存到快照中的那些数据
快照功能并不是非常耐久(durable):如果Redis因为某些原因而造成故障停机,那么服务器将丢失最近写入、且仍未保存到快照中的那些数据。从1.1版本开始, Redis增加了一种完全耐久的持久化方式:AOF持久化,将修改的每一条指令记录进文件appendonly. aof中(先写入os cache,每隔一段时间fsync到磁盘)
你可以通过修改配置文件来打开AOF功能:
1#appendonly yes
appendonly yes:开启AOF
appendfilename "appendonly.aof":策略
原理:直接通过执行aof里面的操作命令集进行恢复
缺点:速度慢,要恢复的执行语句太多
从现在开始,每当Redis执行一个改变数据集的命令时(比如SET),这个命令就会被追加到AOF文件的末尾。
这样的话,当Redis重新启动时,程序就可以通过重新执行AOF文件中的命令来达到重建数据集的目的。你可以配置Redis多久才将数据fsync到磁盘一次。
有三个选项:
1 appendfsync always:每次有新命令追加到AOF文件时就执行一次fsync,非常慢,也非常安全。 2 appendfsync everysec:每秒fsync一次,足够快,并且在故障时只会丢失1秒钟的数据。 3 appendfsync no:从不fsync,将数据交给操作系统来处理。更快,也更不安全的选择。
推荐(并且也是默认)的措施为每秒fsync一次,这种fsync策略可以兼顾速度和安全性。
2.3、AOF重写
AOF文件里可能有太多没用的指令,所以AOF会定期根据内存的最新数据生成aof文件,
例如执行了如下几条命令:
三、