Redis项目实战---应用及理论(上)---redis基础知识介绍

redis(Remote Dictionary Server) 一、原理及特性层面: 1、优势: 1)数据加载在内存中,执行速度快, 数据结构类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)。 2)单线程多路复用,I/O多路复用(防止 I/O 阻塞)-- 一种效率更高 ... »

Redis(五)--- Redis的持久化RDB与AOF

一、Redis数据库 我们都知道Redis是基于内存的数据库,数据是以key-value键值对的方式存储的,那么key-value键值对是随意放在内存中的么,其实Redis的服务会创建很多的数据库空间,这些key-value键值对都是在各个数据库空间中存储的。 当我们使用客户端工具链接Redis服务 ... »

Redis(四)--- Redis的命令参考

1、简述 数据类型也称数据对象,包含字符串对象(string)、列表对象(list)、哈希对象(hash)、集合对象(set)、有序集合对象(zset)。 2、String数据类型命令 string 类型是redis最基础的数据类型,为简单key-value结构,并且value不限制类型,可以是数字 ... »

支撑马蜂窝会员体系全面升级背后的架构设计

流量红利正逐渐走向终结,这已经不再是什么秘密。后互联网时代,如何维系住用户群,提升用户在平台上的体验是整个行业都需要考虑的事情。正是出于这一原因,现在全行业都在关注会员体系的搭建,这也是马蜂窝 2019 年重点投入的方向之一。 面对这个全行业都在发力的会员市场,要对「马蜂窝特色」的会员体系进行有力的 ... »

Redis 学习笔记(篇六):数据库

Redis 是一个使用 C 语言编写的 NoSql 的数据库,本篇就讲解在 Redis 中数据库是如何存储的?以及和数据库有关的一些操作。 Redis 中的所有数据库都保存在 redis.h/redisServer 结构中的 db 数组中,如下: struct redisServer { ..... ... »

Redis(三)--- Redis的五大数据类型的底层实现

1、简介 Redis的五大数据类型也称五大数据对象;前面介绍过6大数据结构,Redis并没有直接使用这些结构来实现键值对数据库,而是使用这些结构构建了一个对象系统redisObject;这个对象系统包含了五大数据对象,字符串对象(string)、列表对象(list)、哈希对象(hash)、集合(se ... »

图解Redis之数据结构篇——跳跃表

前言       跳跃表是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。这么说,我们可能很难理解,我们可以先回忆一下链表。 一、复习跳跃表 1.1 什么是跳跃表   &nb ... »

Redis持久化背后的故事

Redis持久化 Redis提供了不同的持久化选项: RDB持久化 以指定的时间间隔保存那个时间点的数据快照。 AOF持久化 方法则会记录每一个服务器收到的写操作。在服务器启动时,这些记录的操作会逐条执行从而重建出原来的数据。写操作命令记录的格式跟Redis协议一致,以追加的方式进行保存。 Redi ... »

SpringBoot2.x 整合Spring-Session实现Session共享

SpringBoot2.x 整合Spring Session实现Session共享 1.前言 发展至今,已经很少还存在单服务的应用架构,不说都使用分布式架构部署, 至少也是多点高可用服务。在多个服务器的情况下,Seession共享就是必须面对的问题了。 解决Session共享问题,大多数人的思路都是 ... »

利用Docker搭建Redis集群

Redis集群搭建 运行Redis镜像 分别使用以下命令启动3个Redis docker run name redis 6379 p 6379:6379 d hub.c.163.com/library/redis docker run name redis 6380 p 6380:6379 d hu ... »

Redis 学习笔记(篇五):对象(RedisObject)

Redis 对象 在以前的文章中,我们介绍了 Redis 用到的主要数据结构,比如简单动态字符串、双端链表、字典、压缩列表、整数集合。 然而 Redis 并没有直接使用这些数据结构来实现键值对的数据库,而是在这些数据结构之上又包装了一层 RedisObject(对象),RedisObject 有五种 ... »

高并发架构系列:Redis缓存和MySQL数据一致性方案详解

一、需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。 这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。 读取缓存步骤一般没有什么问 ... »

redis 是如何做持久化的

Redis 是一个键值对数据库服务器。基于内存存储数据,它常被用做缓存数据库,用来替代 memcached。官网: "https://redis.io/" 什么是持久化? 持久化,指将数据存储到可永久保存的设备中。 例如,将内存中的数据存储到可永久保存的硬盘中。 为什么需要持久化? 1. Redis ... »

C# Redis分布式锁(基于ServiceStack.Redis)

相关的文章其实不少,我也从中受益不少,但是还是想自己梳理一下,毕竟自己写的更走心! 首先给出一个拓展类,通过拓展方法实现加锁和解锁。 注:之所以增加拓展方法,是因为合理使用拓展类(方法),可以让程序更简洁,拓展性更好。如.Net Core中新增拓展就是通过拓展类实现的,如services.AddMe ... »

关于redis

记一下一些redis的内容,以免自己忘记。 根据redis的GitHub上的说明:Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis默认在6379端口运行 它通常被称为数据结构服务器,因 ... »

redis相关

之前学习了redis相关的一些知识,但是没有做一个总结,现在总结如下: 0.redis是什么?redis是nosql(也是个巨大的map) 单线程,但是可处理1秒10w的并发(数据都在内存中) 使用java对redis进行操作类似jdbc接口标准对mysql,有各类实现他的实现类,我们常用的是dru ... »

推荐一个Redis管理工具

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用, ... »

自定义实现一个loghub(或kafka)的动态分片消费者负载均衡?

一般地,像kafka之类的消息中间件,作为一个可以保持历史消息的组件,其消费模型一般是主动拉取方式。这是为了给消费者足够的自由,回滚或者前进。 然而,也正是由于将消费消息的权力交给了消费者,所以,消费者往往需要承担更多的责任。比如:需要自行保存消费偏移量,以便后续可以知道从哪里继续。而当这一点处理不 ... »