1.redis是什么?

redis是非关系型数据库key-value数据库,开源免费。是当下NoSQL技术之一

2.redis能干吗?

(1)内存存储,可以持久化,redis存储在内存中,内存的话是断电即丢失,所以redis支持持久化以至于数据不会丢失,

(2)高效,可用于高速缓存

(3)地图信息分析

(4)计时器

3.redis特点

(1)多样的数据类型

(2)持久化

(3)集群

(4)事务

4.redis安装

(1)yum install epel-release

(2)yum install -y redis

(3)启动redis.       systemctl restart redis

(4)进入redis       redis-cli

5.查看配置文件。默认在/etc/redis.conf

redis默认端口:6379

daemonize no改成yes

6.登录redis

[root@mysql redis-6.0.6]# redis-cli

7.测试redis连通性

127.0.0.1:6379> ping

PONG

8.数据库操作命令:

设置值和查看值: set name zhao

127.0.0.1:6379> get name

"zhao"

查看所有的键

127.0.0.1:6379> keys *

1) "age"

2) "name"

删除当前库的key:flushdb

删除所有库的key:flushall

查看当前库的大小:DBSIZE

切换到其他库:select  数据库    例子:select 3

判断某个key是否存在:EXPIRE key    返回1就是存在,返回0就是不存在

例子:127.0.0.1:6379> EXISTS name

(integer) 1          存在

127.0.0.1:6379> EXISTS AA

(integer) 0         不存在

移除某个key:move  key  key的值  例子:move name 1

设置过期时间:EXPIRE  key名  过期时间(秒)

例子:127.0.0.1:6379> keys *

1) "age"

2) "name"                   #查看当前的key

127.0.0.1:6379> EXPIRE age 10

(integer) 1             #设置age这个key10秒后过期

查看还剩余多长时间过期:ttl  key名

查看redis密码:config get requirepass

修改密码:config set requirepass   密码

9.redis的两种持久化机制

(1)RDB:把当前时间内,把内存中的数据生成快照,存入磁盘中,恢复时候是把rdb文件恢复到内存中去,redis默认是开启的rdb,缺点是最后一次持久化后的数据会丢失

rdb保存文件格式:dump.rdb

快照生成存放在/var/lib/redis文件下

触发rdb快照的两种方式:手动触发和自动触发

手动触发(1)在redis里执行save,不过会阻塞当前redis服务器,不建议使用

(2)bgsave,redis进程执行fork操作创建子进程,子进程持久化操作,阻塞只发生在fork阶段,一般时间很短

自动触发(1)使用save相关配置 save m n 标识m秒内 数据存在n次修改,自动触发自动保存

             (2)从节点全量复制时也会执行自动保存
             (3)redis发生错误重启redis时,也会触发save操作
             (4)执行关机操作时shutdown
             (5)flushall触发

执行过程:父进程正常处理客户端请求,同时fork出一个子进程,过程中父进程发生阻塞不过耗时很短,可以通过info  stats的last_fork_usec可获取最近一次fork的耗时。子进程创建rdb文件,替换老的rdb文件,执行lastsave可获取最后一次生成rdb文件的时间。子进程通知父进程更新完毕,父进程更新文件

如何恢复rdb快照文件:把rdb文件放到/var/lib/redis下就可以恢复

rdb文件优缺点:

优点:rdb恢复数据快,redis代表某个时间点的数据快照,适用于备份

缺点:各个版本RDB存在兼容问题,且没办法实时持久化,如果redis意外宕机,最后一次修改的数据就丢失了

(2)AOF:AOF以独立日志方式记录每次写的命令,重启时在执行AOF文件中的命令,目前是redis持久化的主流方式

aof保存文件格式:appendonly.aof

如何开启aof持久化,只要把配置文件的appendonly   改成yes就可以

如何恢复aof文件,在/bin目录下,找到redis-check-aof文件,执行redis-check-aof --fix appendonly.aof即可修复

aof持久化过程:

1.执行AOF重写请求
2.父进程执行fork创建子进程,过程中发生阻塞
3.1 主进程fork操作完成后,继续接受响应请求,命令写入aof_buf缓存区中             (同时执行)
3.2 fork 利用写时复制技术,子进程只能共享fork操作时的内存数据                         (同时执行)
4.子进程根据内存快照,按照命令合并规则写入新的aof
5.1 aof写入完成之后,通知父进程                                                                       (同时执行)
5.2 父进程把aof重写缓冲区的数据写入新的aof文件                                            (同时执行)
5.3 使用新aof文件替换老文件,完成aof重写                                                       (同时执行)

aof持久化优缺点

优点:实时持久化

缺点:恢复数据慢

redis 基础1的更多相关文章

  1. windows下使用redis,Redis入门使用,Redis基础命令

    windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...

  2. [.net 面向对象程序设计深入](14)Redis——基础

    [.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...

  3. linux redis基础应用 主从服务器配置

    Redis基础应用 redis是一个开源的可基于内存可持久化的日志型,key-value数据库redis的存储分为内存存储,磁盘存储和log文件三部分配置文件中有三个参数对其进行配置 优势:和memc ...

  4. [.net 面向对象程序设计深入](36)Redis——基础

    [.net 面向对象程序设计深入](36)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...

  5. mysql主从复制、redis基础、持久化和主从复制

    一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroo ...

  6. Redis基础用法、高级特性与性能调优以及缓存穿透等分析

     一.Redis介绍 Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库.缓存服务或消息服务使用.Redis支持多种数据结构,包括字符串.哈希表.链表.集合.有序集合.位图.Hype ...

  7. Redis基础知识补充及持久化、备份介绍(二)--技术流ken

    Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)--技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis ...

  8. Spring-Boot之Redis基础

    Spring-Boot之Redis基础 准备 Redis下载地址:github.com/MSOpenTech/redis/releases Redis数据库的默认端口号是 6379 开启Redis服务 ...

  9. mongodb,Mysql,redis基础教程

    数据库基础 1:mongodb基础教程 1:pymongo基础教程  2:Mysql基础教程 3:redis基础教程

  10. Redis基础知识点面试手册

    Redis基础知识点面试手册 基础 概述 数据类型 STRING LIST SET HASH ZSET(SORTEDSET) 数据结构 字典 跳跃表 使用场景 会话缓存 缓存 计数器 查找表 消息队列 ...

随机推荐

  1. 学习FastDfs(四)

    1.简介 FastDFS 是一个开源的高性能分布式文件系统(DFS). 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡.主要解决了海量数据存储问题,特别适合以中小文件(建议范围: ...

  2. Mybatis useGeneratedKeys无法返回主键解决

    1.项目环境--SpringBoot下的SSM+Maven 2.问题出现位置--Dao层和Mapper文件 错误代码如下图: dao层: mapper文件: 错误代码分析: 使用useGenerate ...

  3. 复杂JSON字符串解析,可以少走弯路

    发现一个好文章:装载至http://www.verejava.com/?id=17174254038220 package com.json5;    import org.json.JSONArra ...

  4. Netty学习摘记 —— 初步认识Netty核心组件

    本文参考 我在博客内关于"Netty学习摘记"的系列文章主要是对<Netty in action>一书的学习摘记,文章中的代码也大多来自此书的github仓库,加上了一 ...

  5. ctfhub 过滤运算符 综合过滤练习 读取源代码 远程包含 eval执行 文件包含 php://input

    过滤运算符 过滤了\和&那么尝试; 成功那么将flag cat出来 127.0.0.1;cat flag_27249269530391.php 得到flag 综合过滤练习 这次过滤有点多过滤了 ...

  6. 树莓派系统安装(ubuntu版本)无需屏幕

    0.前提 所需物品:一个手机.一台电脑.一个树莓派.一张tf卡和一个读卡器.所需软件:Win32DiskImager.putty还需要ubuntu系统镜像源.这些我都放在百度网盘上了链接:https: ...

  7. flex布局中父容器属性部分演示效果

    如图可见flex的属性分为父容器和子容器的属性共12个.关于这些属性具体代表什么意思,网上有很多教程的文章,自觉不能写得比别人更好,所以这里主要写了一些例子关于父容器属性效果的演示,希望可以帮助大家理 ...

  8. 淘宝 rem 机制入门学习

    一 移动设备尺寸多种多样,带来适配难度,有时甚至无从下手.1 移动设备上的Px 像素不等于设备的物理像素.iphone 6 作为开发标准设备不等于设备的物理像素.iPhone 5 物理宽度320iPh ...

  9. H5: 表单验证失败的提示语

    前言     前端的童鞋在写页面时, 都不可避免的总会踩到表单验证这个坑. 这时候, 我们就要跪了, 因为要写一堆js来检查. 但是自从H5出现后, 很多常见的表达验证, 它都已经帮我们实现了, 让我 ...

  10. final,finally和finalize的区别

    package com.heima.test; public class Test1 {  /**  * * A:面试题1   * final,finally和finalize的区别   * fina ...