rdb

如何在 .NET 中使用 Redis缓存

旧城冷巷雨未停 提交于 2020-12-01 15:41:49
译文链接:https://www.infoworld.com/article/3187905/how-to-work-with-redis-cache-in-net.html 缓存是一种状态管理机制,通常用于提升你的应用程序性能,它很大程度上能够减少一个请求对你系统资源的消耗。 Redis是一个开源的,高性能的,NoSql数据库,它的速度非常快,而且所有的数据都是灌入到内存中,从内存中读写数据的性能开销真的是微乎其微,值得一提的是 Redis 采用的是BSD license,说明你可以将它用于商业和非商业的用途。 Redis是什么,我为什么要用它? Redis 是最流行的开源,NoSQL,基于内存的数据存储,而且非常????的是:它的数据存储支持多个数据结构,eg:strings,hashes,sets,lists 等等,Redis内部也提供了对 复制分发 和 事务 的支持,同时在数据持久化方面也做的非常好。 如果你的应用程序需要读取大量的数据,并且你的机器有很多的空闲内存,在这样的场景下如果你有提升性能的需求,采用 Redis 是一个非常好的选择,将Redis应用到你的程序中操作步骤也是非常简单的,接下来我们会一起讨论下如何去安装,配置和使用。 安装Redis 本篇讨论下如何在 Windows 平台上安装 Redis,安装包可以到 GitHub:https://github

跟随杠精的视角一起来了解Redis的主从复制

回眸只為那壹抹淺笑 提交于 2020-12-01 11:26:38
不想弹好吉他的撸铁狗,都不是好的程序猿 虽然说单机的Redis性能很好,也有完备的持久化机制,那如果你的业务体量真的很大,超过了单机能够承载的上限了怎么办?不做任何处理的话Redis挂了怎么办?带着这个问题开始我们今天的主题- Redis高可用 ,由于篇幅原因,本章就只聊聊主从复制。 为啥要先从主从复制开始聊,是因为 主从复制 可以说是整个Redis高可用实现的基石,你可以先有这么一个概念,至于具体为什么是基石,这个后面聊到Sentinel和Redis集群的时候会说到。 首先我们需要知道,对于我们开发人员来说,为什么需要 主从架构 ?一个Redis实例难道不行吗? 其实除了开篇提到的负载超过了Redis单机能够处理的上限,还有一种情况Redis也无法保证自身的高可用性。那就是即便Redis能够扛住所有流量,但是如果这个Redis进程所在的机器挂了呢?请求会直接调转枪口,大量的流量会瞬间把你的DB打挂,然后你就可以背个P0,打包回家了。 而且,假设你对Redis的需求真的超过了单机的容量,你怎么办?搞多台独立的Redis实例吗?那如果用户缓存的数据这一次存在了实例一,下一次如果用户又访问到了实例二,难道又要去走一遍DB吗?除非你能够维护好用户和Redis实例的对应关系(但是通常这样的逻辑比较复杂),否则部署多个Redis实例也就失去了它的意义,没有办法做到横向扩展了。

REDIS基础学习笔记

霸气de小男生 提交于 2020-11-30 06:52:09
一. 背景说明 学习每一种新技术之前,我都会尽量提醒自己从这三个方面依次递进的去学:是什么,能干嘛?为什么用它?怎么用? Redis是什么?一项基于分布式缓存的nosql数据库技术。能干嘛?做分布式缓存呗。 为什么用它?一般来说,每一项新技术的出现,都有其历史背景及使命(要解决的问题),技术来源于问题。为什么已经有了传统的关系型数据库,还要非关系型数据库干啥?毋庸置疑,肯定是原有的老技术有其无法避免的缺点及弊端,即使很有可能总体来说它已经很优秀了。传统的关系型数据库,如Oracle、Mysql、SQLServer、DB2,基本上都是把数据主要存放位置放在磁盘上,在一些大数据量,高并发的情况下,磁盘的读写速度已经无法满足需求了,我们迫切需要一个基于更快的物理硬件如内存的数据库。于是Redis就应运而生了。 怎么用?后面自然会说,在这之前先按正常节奏一步步的了解并同时学习用法。 二. 用法 2.1 安装和启动 首先需要注意下的是,据说Redis在Windows Server中的性能表现要比Linux中差很多。所以,条件允许的话,尽可能的选择Linux平台。如果选择了Linux平台的话,需要另外注意的一个事情是:Redis是用C语言编写的,而我们下载的Redis一般源码安装程序,所以在这之前你需要确保系统里有合适的编译器。gcc或gcc-c++都行,我的系统(CentOS7

Redis配置解析、持久化与哨兵模式

两盒软妹~` 提交于 2020-11-28 13:57:01
一、redis基础配置 1、进入redis界面:redis-cli -h IP/HOSTNAME -p PORT -a PASSWORD 2、查看redis版本信息:进入客户端界面后,输入info 3、配置文件: networking配置 (1)bind 0.0.0.0:监听地址,可以用空格隔开后多个监听ip (2)protected-mode yes:保护模式 下图所示,保护模式打开时候,未设置监听地址或者未输入密码时候会有保护提升 关闭保护模式或者取消bind 0.0.0.0的注释,都可以正常使用redis (3)port 6379:默认监听端口更改处 (4)tcp-backlog 511:三次握手时候server端收到client的ack确认号之后的队列值 (5)timeout 0:客户端和redis服务的连接超时时间,默认是0,表示永不超时;此处客户端不是redis的client,是使用redis数据的java程序;若设置了时长,超时后再连接java程序会与redis重新三次握手;为防止不回收长连接造成数据库卡,建议设置时长 (6)tcp-keepalived 300:tcp会话保持时间,300s general配置 (7)daemonize yes:是否在后台运行 (8)supervised no:UOS与CentOS7后都是用systemctl进行启动redis

阿里P8架构师秘诀:看完这份“Redis面试宝典”,还担心面试被out?完全不存在

别说谁变了你拦得住时间么 提交于 2020-11-27 12:24:52
在大数据时代,频繁地在应用和数据库之间进行读写操作在性能、速度、体验上已经远远不能满足用户、客户、开发人员的要求了,于是一种基于内存操作的数据库便应运而生。Redis 是一种基于内存的数据库,如何轻松理解并熟练操作 Redis 是一个有责任心、进取心程序员应该了解和掌握的技术。Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行各种刁难。 在将面试问的Redis高级题目进行详细的梳理,并结合了解析在这免费分享给大家! Redis高级面试专题 一、Redis基础概念相关问题 1.什么是 Redis? 2.Redis 的特点有哪些? 3. Memcache 与 Redis的区别都有哪些? 4.Redis 相比 Memcached有哪些优势? 5.如何实现本地缓存﹖请描述一下你知道的方式 6.Redis通讯协议是什么?有什么特点? 二、Redis 数据结构及指令相关问题 1. Redis支持的数据类型 2.Redis 常用的命令有哪些? 3.一个字符串类型的值能存储最大容量是多少? 4.Redis各个数据类型最大存储量分别是多少? 5.请介绍一下Redis的数据类型 SortedSet ( zset )以及底层实现机制? 6.Redis 事务相关命令有哪些? 7.什么是 Redis 事务﹖原理是什么? 8.Redis

redis入门

时光总嘲笑我的痴心妄想 提交于 2020-11-24 15:01:40
介绍 Redis是目前非常流行的一款NoSql数据库 对比 Redis和Memcahe是目前非常流行的两种NoSql数据库,读可以用于服务端缓存。两者有怎么样的差异呢? 从现实来看 redis:单线程 memcache:多线程 从存储方式来看: redis:支持数据持久化和主从备份,数据更安全 memcache:数据存于内存,没有持久化功能 从功能来看: redis:除了基本的key结构外,支持多种其他复杂结构、事务等高级功能 memcache:只支持基本k-v结构 从可用性看: redis:支持主从备份、数据分片、哨兵监控 memcache:没有分片功能,需要从客户端支持 可以看出,Redis相比Memcache功能更强大,支持的数据结构也比较丰富,已经不仅仅是一个缓存服务。而Memcache的功能相对单一。 一些面试问题:持久化、分片(集群)、主从、哨兵、避免缓存击穿、避免缓存雪崩、避免缓存热点key过期 指令 通过help命名可以让我们查看到Redis的指令帮助消息: 在help后面跟上空格,然后按tab键,会看到Redis对命令分组的组名: 主要包含: @generic:通用指令 @string:字符串类型指令 @list:队列结构指令 @set:set结构指令 @sorted_set:可排序的set 结构指令 @hash:hash结构指令 指令学习地址: http:/

为什么redis主从复制基于repl_backlog_buffer环形buffer而不是aof 做增量复制?

ぃ、小莉子 提交于 2020-11-24 06:51:52
AOF 对于实时性要求不是很苛刻的情况下一般是不开起的 RDB读取快,这样从库可以尽快完成RDB的读取,然后入去消费replication buffer的数据。 如果是AOF的话,AOF体积大,读取慢,需要更大的replication buffer,如果一个主节点的从节点多的话,就需要更大的内存去处理; AOF文件是append追加模式,同时读写需要考虑并发安全问题,并且AOF是文本文件, 体积较大,浪费网络带宽。 这里的repl_backlog_buffer是不需要落盘的,性能也比AOF好太多 因为RDB、AOF已经保证了可用性 来源: oschina 链接: https://my.oschina.net/u/3847203/blog/4562322

redis-rdb-tools安装部署及使用

自古美人都是妖i 提交于 2020-11-22 18:52:46
redis-rdb-tools安装部署及使用 redis内存分析工具redis-rdb-tools安装部署 项目地址: https://github.com/sripathikrishnan/redis-rdb-tools 安装部署 安装Python2.7 下载redis-rdb-tools git clone https://github.com/sripathikrishnan/redis-rdb-tools.git 安装redis-rdb-tools pip2.7 install python-lzf cd redis-rdb-tools python2.7 setup.py install 常见用法: # 以json格式输出 > rdb --command json /var/redis/6379/dump.rdb # 以json格式输出,模糊查找 > rdb --command justkeyvals --key "user.*" /var/redis/6379/dump.rdb user003 fname Ron,sname Bumquist, user001 fname Raoul,sname Duke, user002 fname Gonzo,sname Dr, user_list user003,user002,user001 # 查找确定键信息 > redis

Redis的持久化(重要,面试题)

孤者浪人 提交于 2020-11-22 06:55:55
持久化:就是把内存中的数据保存到磁盘 1.Redis为什么要有持久化? 由于Redis是一个基于内存的数据库,因此数据容易丢失,为了解决数据丢失的问题,于是Redis就设计了持久化 2.Redis的持久的方式有哪些? 有两个,分别是rdb和aof的持久化方式 3.分别介绍一下Redis的持久化方式的机制 rdb持久化:Redis为我们提供了一个rdb的持久化方式具体每隔一定时间,或者当key的改变达到一定的数量的时候,就会自动往磁盘保存一次 1 save 900 1(900秒后1个key改变) 2 save 300 10(300秒后19个key改变) 3 save 60 10000(60秒后10000个key改变)(save是或者的关系) aof持久化:Redis还为我们提供了一个aof的持久化方式,这种方式是通过记录用户的操作过程(用户每执行一次命令,就会被Redis记录在XXX.aof文件里,如果突然断电了,Redis的数据就会通过重新读取并执行XXX.aof里的命令记录来恢复数据)来恢复数据 4.两种Redis持久化方式的优缺点 都是为了防止数据丢失 rdb:假如三种方式没有一种被满足,触发不了保存,突然断电,那就会丢失数据 aof:为了解决rdb的弊端,就有了aof的持久化,始终在一个文件里保存记录,但aof的持久化随着时间的推移数据量会越来越大,占用很大的空间 来源:

我真的尽力了,最经典Redis面试14题,没时间复习就看这个吧

☆樱花仙子☆ 提交于 2020-11-18 23:53:43
前言 小编真的努力了,Redis面试官灵魂14问!你值得拥有! 1.redis 简介 简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以存写速度非常快,因 此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业 务场景。除此之外,redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。 2.为什么要用 redis /为什么要用缓存 主要从“高性能”和“高并发”这两点来看待这个问题。 高性能 假如用户第一次访问数据库中的某些数据。这个过程会比较慢,因为是从硬盘上读取的。将该用户访问的数据存在数 缓 存中,这样下一次再访问这些数据的时候就可以直接从缓存中获取了。操作缓存就是直接操作内存,所以速度相当 快。 如果数据库中的对应数据改变的之后,同步改变缓存中相应的数据即可! 高并发 直接操作缓存能够承受的请求是远远大于直接访问数据库的,所以我们可以考虑把数据库中的部分数据转移到缓存中 去,这样用户的一部分请求会直接到缓存这里而不用经过数据库。 3.为什么要用 redis 而不用 map/guava 做缓存? 缓存分为本地缓存和分布式缓存。以 Java 为例,使用自带的 map 或者 guava 实现的是本地缓存,最主要的特点是 轻量以及快速,生命周期随着