redis 基础1
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的更多相关文章
- windows下使用redis,Redis入门使用,Redis基础命令
windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...
- [.net 面向对象程序设计深入](14)Redis——基础
[.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...
- linux redis基础应用 主从服务器配置
Redis基础应用 redis是一个开源的可基于内存可持久化的日志型,key-value数据库redis的存储分为内存存储,磁盘存储和log文件三部分配置文件中有三个参数对其进行配置 优势:和memc ...
- [.net 面向对象程序设计深入](36)Redis——基础
[.net 面向对象程序设计深入](36)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...
- mysql主从复制、redis基础、持久化和主从复制
一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroo ...
- Redis基础用法、高级特性与性能调优以及缓存穿透等分析
一.Redis介绍 Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库.缓存服务或消息服务使用.Redis支持多种数据结构,包括字符串.哈希表.链表.集合.有序集合.位图.Hype ...
- Redis基础知识补充及持久化、备份介绍(二)--技术流ken
Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)--技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis ...
- Spring-Boot之Redis基础
Spring-Boot之Redis基础 准备 Redis下载地址:github.com/MSOpenTech/redis/releases Redis数据库的默认端口号是 6379 开启Redis服务 ...
- mongodb,Mysql,redis基础教程
数据库基础 1:mongodb基础教程 1:pymongo基础教程 2:Mysql基础教程 3:redis基础教程
- Redis基础知识点面试手册
Redis基础知识点面试手册 基础 概述 数据类型 STRING LIST SET HASH ZSET(SORTEDSET) 数据结构 字典 跳跃表 使用场景 会话缓存 缓存 计数器 查找表 消息队列 ...
随机推荐
- (stm32学习总结)—SPI-FLASH 实验
SPI总线 SPI 简介 SPI 的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola 首先在其 MC68HCXX 系列处理器上 ...
- poj_1852_Ants(复杂问题简单化)
原题传送门 描述 一群蚂蚁走在长度为l cm的水平细杆上,以1cm/s的匀速.当一只行走的蚂蚁到达杆的一端,它就会掉下去.当两只蚂蚁相遇,它们会掉头像反方向走去.我们知道一只蚂蚁在杆上的初始位置,然而 ...
- Web前端初级问题—ajax登录跳转登录实现
当我们的用户进行系统登录时,用户名和密码的验证都是后端验证的.而且,用户登录状态也是要后端设置的,查询数据库后,用户名和密码正确,则在session中存储一个uuid,每个页面需要根据登录状态判断展示 ...
- 使用Bootstrap typeahead插件实现搜索框自动补全的配置参数。
示例代码: <input type="text" id="addr"/> <input type="text" hidde ...
- 走一步再走一步,揭开co的神秘面纱
前言 原文地址 源码地址 了解co的前提是已经知晓generator是什么,可以看软大神的Generator 函数的语法,co是TJ大神写的能够使generator自动执行的函数库,而我们熟知的koa ...
- Element UI table参数中的selectable的使用
Element UI table参数中的selectable的使用中遇到的坑:页面: <el-table-column :selectable='selectable' type="s ...
- ES6-11学习笔记--模块化
模块化规范有: CommonJS:Node.js AMD:require.js CMD:sea.js ES6:Module ES6模块化使用: 关键词:export.import.as.exp ...
- javaweb之浏览功能
今天我们来写浏览功能,浏览主要是通过sql语句将数据库里的数据查出来,并显示在页面上. 一.dao层 在上一篇文章的基础上dao层加入浏览方法. public List<Course> l ...
- properties和XML配置文件内容的获取
@ 目录 总结内容 1. Java中为什么要使用配置文件 2. Java中常用的配置文件类型有哪些以及它们的特点 Properties配置文件 XML配置文件 总结 总结内容 1. Java中为什么要 ...
- this和super的区别和应用
A:this和super都代表什么 * this:代表当前对象的引用,谁来调用我,我就代表谁 * super:代表当前对象父类的引用B:this和super的使用区别 * a:调用成员变量 * th ...