IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis数据库 -> 正文阅读

[大数据]Redis数据库

redis介绍

redis,底层由3万多行C语言代码实现,全名“Remote DIctionary Server”,名字就可以看出来,redis是一个key-value键值对的数据库存储系统。Redis中的key只能是string字符串,value可以是:string(字符串)、hash(哈希)、list(列表)、set(集合)、sorted set(有序集合),这五种当中的一种。

redis特点

  • 单进程单线程高性能服务器,保证了操作的原子性,数据的安全性
  • 可以达到10w的qps
  • 支持publish/subscribe(发布和订阅)、通知、key过期等特性,支持异机主从复制

Linux下安装和启动Redis

安装

# 下载最新redis,我这里是6.0.6版本
wget -q http://download.redis.io/releases/redis-6.0.6.tar.gz
# 解压到用户目录下
tar xf redis-2.8.9.tar -C ~/
cd ~/redis-6.0.6
# 安装到用户目录下的redis目录
make MALLOC=jemalloc
make PREFIX=~/redis install
LANG=en

安装完成之后在~/redis/bin目录下会生成5个可执行文件

redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-dump

redis-server          #Redis服务器的daemon启动程序
redis-cli                #Redis命令操作工具。当然,你也可以用telnet根据其纯文本协议来操作
redis-benchmark#Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能。
redis-check-aof  #对更新日志appendonly.aof检查,是否可用,类似检查mysql binlog的工具
redis-check-dump#用于本地数据库rdb文件的检查

配置环境变量,以便在任何位置都可以调用~/redis/bin下的5个功能服务,例如下一步的启动redis

vim ~/.bashrc

# 在文件末尾添加
export PATH="$PATH:$HOME/redis/bin"

启动

下载的redis-6.0.6目录下有一个默认的配置文件redis.conf,我们可以用他来启动redis,当然通常我们是根据自己项目的配置文件来启动

# 在后台启动redis
redis-server redis.conf &

# 查看redis进程是否启动
ps aux | grep redis

配置文件

Redis的配置文件比较重要,这里简单介绍一下

NETWORK

  • bind默认IP为本地回环地址(127.0.0.1),只能通过本主机访问Redis,其他远程主机无法连接,如果bind为空,则接受所有连接。
  • 默认port为6379,由于Redis是单线程模式,因此一台主机开多个Redis进程时会修改端口
  • timeout:单位为秒的客户端超时时间,规定时间内客户端没有发任何指令,Redis服务将关闭连接,默认为0表示不关闭

SNAPSHOTTING

rdb持久化

  • save 300 10 : 表示300秒内至少有10个数据发生变化则将数据保存到磁盘,如果只是使用Redis的缓存功能则直接将save注释掉
  • stop-writes-on-bgsave-error:当落盘数据时候后,Redis是否停止接收数据
  • rdbcompression:落盘的数据是否启动压缩,启动的话会消耗CPU,但落盘的快照数据会比较小
  • dbfilename:快照的文件名
  • dir:快照文件的存放位置(目录)

APPEND ONLY MODE

aof持久化

  • appendonly: 默认为no,只开启rdb。改为yes时,rdb和aof同时开启。两者都存在时,Redis启动时会优先从aof文件读取数据到内存,否则才会到rdb读取。
  • appendfsync:aof持久化配置:默认为everysec,表示每秒执行一次fsync。no表示不执行fsync,由操作系统保证数据到磁盘,速度最快。always表示每次写入都执行fsync,保证数据写入到磁盘。

两种持久化存储机制

Snapshot(rdb)和AOF,两种机制都是先将数据存储到内存

Snapshot

先将数据存储到内存,然后数据满足redis.conf配置文件中的save条件时,机会触发一次dump操作,将变化的数据一次性写到rdb文件中

AOF

先将数据存储到内存,在存储的过程中会调用fsync来讲本次写操作记录到日志文件中,调用fsync的频率为配置文件中的appendfsync条件决定。

性能

rdb性能高于aof:

  • rdb采用二进制方式存储数据,所以数据文件比较小,加载速度快
  • 是按照配置文件中save条件存储,每次都是整合了大量数据批量存储,写入的效率很好。而aof是根据appendfsync条件存储,一般都是实时存储,存储频率较高,效率偏低。

安全性

aof安全性高于rdb

  • rdb是积累大量数据批量存储,当Redis意外奔溃时,积累的数据会丢失。aof策略可以做到最少的数据丢失

AOF的Rewrite功能

  • aof是按照记录日志的方式工作的,那必然会导致记录的日志文件渐渐庞大,Redis会根据配置文件中的条件合理的触发Rewrite操作。Rewrite是将日志文件重新写到另一个新的日志文件中,但是对于同一个key的多次操作,只会保留记录其最后的值,以此来缩小日志文件的大小

Rewrite两个配置条件

两个条件同时满足时才触发

  • auto-aof-rewrite-percentage 100 (当前写入日志文件的大小占到初始日志文件大小的某个百分比时触发Rewrite,这里是100%的意思)
  • auto-aof-rewrite-min-size 64mb (本次Rewrite最小的写入数据量)
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-03 16:10:38  更:2022-01-03 16:12:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:10:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码