redis的应用场景
缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)
分布式集群架构中的session分离。
聊天室的在线好友列表。
任务队列。(秒杀、抢购、12306等等)
应用排行榜。
网站访问统计。
数据过期处理(可以精确到毫秒)
数据结构有五种
1. 字符串String
2. 列表list redis中使用的是双向循环链表来实现的list,在redis中更像栈
lpush key value [value ...] -----向列表左边增加元素 rpush key value [value ...]----- 向列表右边增加元素
|
3. 散列Hash 一般应用于将redis作为分布式缓存,存储数据库中的数据对象
HSET key field value 一次只能设置一个字段值 127.0.0.1:6379> hset user username zhangsan ----------------------------- HMSET key field value 一次可以设置多个字段值 127.0.0.1:6379> hmset user age 20 username lisi
|
HGET key field 一次只能获取一个字段值 127.0.0.1:6379> hget user username "zhangsan“ ---------------------------- HMGET key field [field ...] 一次可以获取多个字段值 127.0.0.1:6379> hmget user age username 1) "20" 2) "lisi" ---------------------------- HGETALL key 127.0.0.1:6379> hgetall user 1) "age" 2) "20" 3) "username" 4) "lisi" HSET命令不区分插入和更新操作,当执行插入操作时HSET命令返回1,当执行更新操作时返回0
|
4. 集合set set中数据是无序的并且不允许重复
5. 有序集合zset redis会根据分数自动排序,这里可以使用在学生成绩排序
持久化方式
RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。
rdb:可以设置间隔多长时间保存一次(Redis不用任何配置默认的持久化方案)
优点:让redis的数据存取速度变快。
缺点:服务器断电时会丢失部分数据(数据的完整性得不到保证)。
AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。
aof:可以设置实时保存
优点:持久化良好,能包装数据的完整性
缺点:大大降低了redis系统的存取速度
RDB持久化配置
Redis会将数据集的快照dump到dump.rdb文件中。此外,我们也可以通过配置文件来修改Redis服务器dump快照的频率
save 900 1 #在900秒之后,如果至少有1个key发生变化,则dump内存快照。
save 300 10 #在300秒之后,如果至少有10个key发生变化,则dump内存快照。
save 60 10000 #在60秒之后,如果至少有10000个key发生变化,则dump快照。
AOF持久化配置
appendfsync always #每次有数据修改发生时都会写入AOF文件。
appendfsync everysec #每秒钟同步一次,该策略为AOF的缺省策略。
appendfsyncno #从不同步。高效但是数据不会被持久化。