rdb

【Redis】二、Redis高级特性

五迷三道 提交于 2021-01-09 06:37:11
(三) Redis高级特性   前面我们介绍了Redis的五种基本的数据类型,灵活运用这五种数据类型是使用Redis的基础,除此之外,Redis还有一些特性,掌握这些特性能对Redis有进一步的了解,比如Redis事务、Redis分区、Redis的数据备份等等。 1、Redis HyperLogLog   Redis从2.8.9版本开始加入了HyperLogLog,这听起来有点陌生,实际上它是一个用来 做基数统计的算法 (基数就是数据集中不重复的元素个数,比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8},基数为5)。   Redis做基数统计有其特有的优势,在输入元素的数量或者体积非常非常大时,Redis计算基数所需的空间总是固定的、并且是很小的,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数,但是它只计算基数,并不储存输入元素本身。<div align=center> </div> 2、Redis数据备份与恢复   Redis支持数据的备份,并可以从备份中恢复数据。这主要就是涉及到一个save命令。   当输入save命令时,将在redis安装目录穿件dump.rdb文件,此文件就是备份的数据。如果想恢复数据,只需要将dump.rdb移动到安装目录下

redis安装和基础配置

别等时光非礼了梦想. 提交于 2021-01-06 13:46:40
一、redis介绍 1、软件获取和帮助获取 Redis.io //官网 Download/redis.io //下载页面, https://redis.io/download/ Redisdoc.com //文档 redis.cn //中文官方网站 2、redis的核心特性 高速读写 数据类型丰富 支持持久化 多种内存分配及回收策略 支持事务 消息队列、消息订阅 支持高可用 支持分布式分片集群 与memeched区别 支持事务 数据类型丰富 支持持久化 支持高可用 支持分布式分片集群 二、Redis安装部署: 下载: wget http://download.redis.io/releases/redis-3.2.12.tar.gz 解压: 上传至 /data tar xzf redis-3.2.12.tar.gz mv redis-3.2.12 redis 安装: cd redis make 修改环境变量 vim /etc/profile export PATH=/application/mysql/bin/:/data/redis/src:$PATH source /etc/profile 启动和简易连接: redis-server & redis-cli 三、Redis基本管理操作 3.1基础配置文件介绍: mkdir -p /data/6379 vim /data/6379

Mysql Binlog日志写入模式和文件结构

筅森魡賤 提交于 2021-01-03 10:53:27
目录 Binlog日志介绍 Binlog的记录模式 Binlog的文件结构 Binlog日志介绍 二进制log,别于数据库引擎的redo log。 binlog记录记录DML DDL 。 Binlog的记录模式 statement 有点像redis的 rdb持久化。 Binlog的文件结构 这个log的格式了解即可,查看log时再来查询。 来源: oschina 链接: https://my.oschina.net/u/4306931/blog/4874139

以友盟+U-Push为例,深度解读消息推送的筛选架构解决方案应用与实践

僤鯓⒐⒋嵵緔 提交于 2020-12-31 12:01:06
业务背景 友盟+消息推送U-Push日均消息下发量百亿级,其中筛选任务日均数十万,筛选设备每分钟峰值可达7亿+,本文将分享友盟+技术架构团队在长期生产实践中沉淀的筛选架构解决方案。 如何保证百亿级的下发量? 友盟+U-Push筛选是Push产品的核心功能,其中实时筛选是面向推送要求较高的付费Pro用户提供的核心能力之一,实现了用户实时打标、筛选、分发、触达的功能。友盟+U-Push的设备识别以device_token为基准,为保证尽可能的触达我们留存了近期所有可能触达客户的device_token,以10亿真实设备为例,每个设备安装10个集成友盟+SDK的应用可以产生10个device_token,牵扯到硬件环境变动导致的device_token漂移问题,可能产生更多device_token。 ( 图1.1.1 友盟+U-Push业务数据流简图) 图1.1.2 友盟+U-Push功能清单 U-Push筛选架构概览 2.1 上下行两个核心链路 U-Push服务由两个关键链路组成,下行链路保证客户消息的触达,上行链路承载终端采数和与客户服务端的数据同步。其中下行链路主要分为任务调度、筛选中心,上行链路主要服务是多种收数通道(为兼容历史问题)和设备中心,上行通过设备中心实现跟下行桥接。 图2.1.1 友盟+U-Push筛选业务场景 在U-Push服务中,依照业务场景不同定义了多种任务类型

总结一波 Redis 面试题,收藏起来!

半世苍凉 提交于 2020-12-30 23:37:07
本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Redis 集群方案应该怎么做?都有哪些方案? 有没有尝试进行多机redis 的部署?如何保证数据一致的? 对于大量的请求怎么样处理 Redis 常见性能问题和解决方案? 讲解下Redis线程模型 为什么Redis的操作是原子性的,怎么保证原子性的? Redis事务 Redis实现分布式锁 Redis 持久化机制 Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。 实现:单独创建fork()一个子进程,将当前父进程的数据库数据复制到子进程的内存中,然后由子进程写入到临时文件中,持久化的过程结束了,再用这个临时文件替换上次的快照文件,然后子进程退出,内存释放。 RDB是Redis默认的持久化方式。按照一定的时间周期策略把内存的数据以快照的形式保存到硬盘的二进制文件

多机部署redis5.0集群环境

拟墨画扇 提交于 2020-12-29 11:41:01
redis5.0集群部署 一、集群介绍 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施(installation)。 Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行这些命令需要在多个 Redis 节点之间移动数据, 并且在高负载的情况下, 这些命令将降低 Redis 集群的性能, 并导致不可预测的行为。 Redis 集群通过分区(partition)来提供一定程度的可用性(availability): 即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求。 Redis 集群提供了以下两个好处: 将数据自动切分(split)到多个节点的能力。 当集群中的一部分节点失效或者无法进行通讯时, 仍然可以继续处理命令请求的能力。 二、Redis 集群数据共享 Redis 集群使用数据分片(sharding)而非一致性哈希(consistency hashing)来实现: 一个 Redis 集群包含 16384 个哈希槽(hash slot), 数据库中的每个键都属于这 16384 个哈希槽的其中一个, 集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽, 其中 CRC16(key) 语句用于计算键 key 的 CRC16 校验和 。 集群中的每个节点负责处理一部分哈希槽。 举个例子,

单机部署redis5.0集群环境

浪子不回头ぞ 提交于 2020-12-29 11:25:16
#安装redis cd redis-5.0.0 make make install #部署集群 mkdir redis_cluster mkdir -p redis_cluster/{7000,7001,7002,7003,7004,7004,7005} #设置配置文件 protected-mode no port 7000 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize yes supervised no pidfile /var/run/redis_7000.pid loglevel notice logfile "" databases 16 always-show-logo yes save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir ./ replica-serve-stale-data yes replica-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-disable-tcp-nodelay no replica

windows下redis可视化客户端redisClient与命令redis_cli的安装

寵の児 提交于 2020-12-29 02:33:54
一、 Window 下安装 下载地址: https://github.com/MSOpenTech/redis/releases 。 Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。 运行服务端 这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了。 切换到redis目录下运行 redis-cli.exe 。 C:\redis>redis-cli.exe 127.0.0.1:6379> ping PONG 以上说明我们已经成功安装了redis。 二、重启 考虑到redis有可能正在将内存中的数据同步到硬盘中,强行终止redis进程有可能导致数据丢失,正确停止redis的方式应该是向redis发送shutdown命令,通过客户端来关闭redis服务端。方法为: C:\redis>redis-cli.exe 127.0.0.1:6379> shutdown Not connected 当redis收到shutdown命令后,会断开所有的客户端连接,然后根据配置执行持久化,最后退出。 [17796] 15 May 14:53:18.771 # User requested shutdown... [17796] 15 May 14:53:18

redis之BGSAVE堵塞redis原因(fork)

陌路散爱 提交于 2020-12-28 01:14:13
Fork 是造成 BGSAVE 堵塞Redis的主要原因: https://redis.io/topics/latency#latency-generated-by-fork 屏幕快照 2018-07-16 上午11.31.26.png Fork 的机制: Fork 会拷贝父进程的所有状态,包括已分配的内存: “ … the operating system will create a new process that is exactly the same as the parent process. This means all the state that was talked about previously is copied, including open files, register state and all memory allocations, which includes the program code. The return value from the system call is the only way the process can determine if it was the existing process or a new one. The return value to the parent process will be the

Redis的HelloWorld

走远了吗. 提交于 2020-12-26 05:57:42
1.安装完成的Redis:   linux安装的应用默认会在:usr/local/bin。        1.redis-benchmark:性能测试工具,是redis提供的一个高并发程序,可以在自己本机运行,看看自己本机性能如何。   2.redis-check-aof:修复有问题的AOF文件(【后续在Redis持久化】会详细讲解该用法)。   3.redis-check-rdb:修复有问题的RDB文件(【后续在Redis持久化】会详细讲解该用法)。   4.redis-cli:客户端,操作入口。   5.redis-sentinel:redis集群使用。   6.redis-server:redis服务器启动命令。    注:使用这些前必须先开启redis服务。 2.开启服务并测试HelloWorld:   1.将redis目录默认的【redis.conf】拷贝到自己定义好的一个路径下,比如【/myconf/redis.conf】(玩linux前,不管什么东西建议先备份一份 出厂的默认设置在去修改)。   2.修改redis.conf文件将里面的【daemonize no】 改成 yes,让服务在后台启动开启守护进程,输入【:wq!】保存并退出。        3.执行【ps -ef|grep redis】命令查看redis服务是否启动。当前是未启动状态。         4