redis分布式

Redis与Memcached的区别

ぃ、小莉子 提交于 2020-01-01 05:11:48
观点一: 1、Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等; 2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储; 3、 虚拟内存 --Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘; 4、过期策略--memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire 设定,例如expire name 10; 5、分布式--设定memcache集群,利用magent做一主多从;redis可以做一主多从。都可以一主一从; 6、存储数据安全--memcache挂掉后,数据没了;redis可以定期保存到磁盘(持久化); 7、 灾难恢复 --memcache挂掉后,数据不可恢复; redis数据丢失后可以通过aof恢复; 8、Redis支持数据的备份,即master-slave模式的数据备份; 9、mongodb和memcached不是一个范畴内的东西。mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据。mongodb和memcached不存在谁替换谁的问题。 观点二: Redis与Memcached的区别

面试题:缓存Redis与Memcached的比较 有用

寵の児 提交于 2020-01-01 05:11:37
Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. 它通过在内存中缓存数据和对象来减少读取数据库的次数, 从而提供动态、数据库驱动网站的速度. Memcached基于一个 存储键/值对的hashmap 。 Redis是一 个key-value存储系统 ,和Memcached类似。但是它支持存储的value类型相对更多, 包括string(字符串)、 list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型) 。 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都 是原子性的 。在此基础上 ,redis支持各种不同方式的排序 。与memcached一样, 为了保证效率,数据都是缓存在内存中。区别的是 redis会周期 性的把更新的数据写入磁盘或者 把修改操作写入追加的记录文件 ,并且在此基础上实现了master-slave(主从)同步。 Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便. 下面主要介绍一下Redis与Memcached的不同。

Redis系列二:reids介绍

混江龙づ霸主 提交于 2020-01-01 05:11:17
一、什么是redis、redis有哪些特性、redis有哪些应用场景、redis的版本 1. 什么是redis redis是一种基于键值对(key-value)数据库,其中value可以为string、hash、list、set、zset等多种数据结构,可以满足很多应用场景。还提供了键过期,发布订阅,事务,流水线,等附加功能, 流水线: Redis 的流水线功能允许客户端一次将多个命令请求发送给服务器, 并将被执行的多个命令请求的结果在一个命令回复中全部返回给客户端, 使用这个功能可以有效地减少客户端在执行多个命令时需要与服务器进行通信的次数。 2. redis有哪些特性 1〉速度快,数据放在内存中,官方给出的读写性能10万/S,与机器性能也有关   a. 数据放内存中是速度快的主要原因   b. C语言实现,与操作系统距离近   c. 使用了单线程架构,预防多线程可能产生的竞争问题 2〉键值对的数据结构服务器 3〉丰富的功能:键过期,发布订阅,事务,流水线..... 4〉简单稳定:单线程 5〉持久化:发生断电或机器故障,数据可能会丢失,持久化到硬盘 6〉主从复制:实现多个相同数据的redis副本 7〉高可用和分布式:哨兵机制实现高可用,保证redis节点故障发现和自动转移 8〉客户端语言多:java php python c c++ nodejs等 3. redis有哪些应用场景

秒杀

廉价感情. 提交于 2020-01-01 00:22:58
秒杀方案: 1:拦截秒杀的高配刷新操作 解决方案:对秒杀商品页面独立设计,减少动态内容,页面内容静态化,用户请求不需要经过应用服务。 2:减库存操作 在应用端增加redis库存,通过redis分布式锁方式,库存的扣减和回滚在redis中处理,提高性能,当高并发的时候我们可以通过分片思想,将一个sku的库存分成N片,redis分布式锁只需要随机获取其中一片锁就可以了,N个分片可以支持N个锁,锁之间是隔离的,扣减的时候优先获取库存多的分片锁,回滚的时候优先获取库存少的锁,通过调整权重值的方式实现 3:秒杀服务隔离 1)通过直接改商品价格为秒杀价的方式处理,不再调用营销中心结算和创建订单 2)商品改为单品单售,这样可以去除很多业务场景,让整个下单业务逻辑变的简单,整个下单的io降到最低 4:提供性能方案 1)涉及到数据库查询类的操作,尽量改为redis或者本地缓存 2)部分影响性能的IO操作,在不影响主流程时,可以通过MQ的方式削峰填谷,使得接口处理能够尽量平稳 5:架构设计 6:redis分布式事务和库存扣减 1)redis分布式事务 @Component @Slf4j public class JedisLockUtil { private static final Long RELEASE_SUCCESS = 1 L ; private static final String

什么是Session分布式共享

亡梦爱人 提交于 2019-12-31 04:26:04
在了解session分布式共享之前先来了解Session、Redis和Nginx的相关知识。 一、Session相关知识 1、Session 介绍 Session在网络应用中,称为“会话控制”。 每个用户(浏览器)首次与web服务器建立连接时,就会产生一个Session,同时服务器会分配一个SessionId给用户的浏览器。我们可以用Fiddler查看cookies中,会看到有一个SessionId的cookie,大家都知道Http是无状态请求,但是Session仿佛又让Http请求变得有状态,其核心就在于这个叫SessionId的cookie,这个相当于数据库的Key,服务器那边再有个Session内容缓存表,是不是Session的内容就很容易得到了。 刚接触程序开发的人一定爱死Session了,因为Session让Http从无状态变成有状态了,页面之间传值、用户相关信息、一些不变的数据、甚至于查出来的DataTable也可以放进去,取值的时候只需要Session[Key]即可,真是方便极了,但任何事物被封为利器基本也是双刃剑,Session的许多问题我们不得不去面对。 这个问题很多人都遇到过,Session是导致这个原因之一,Session丢了让用户重新登录,解决方案为是把Session时间调到9999,结果该发生的还是继续发生着,Session照样丢失。 2

Redis学习笔记(5)—— Redis的持久化方案&Redis的集群搭建

喜夏-厌秋 提交于 2019-12-30 18:41:50
一、Redis的持久化方案   Redis的高性能是由于其将所有数据都存储在了 内存 中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。   Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式。可以单独使用其中一种或将二者结合使用。 【RDB方式】   快照形式,定期把内存中当前时刻的数据保存到磁盘。Redis默认支持的持久化方案。   在redis.conf配置文件中配置:      Redis启动后会读取RDB快照文件,将数据从硬盘载入到内存。根据数据量大小与结构和服务器性能不同,这个时间也不同。通常将记录一千万个字符串类型键、大小为1GB的快照文件载入到内存中需要花费20~30秒钟。   问题总结:   通过RDB方式实现持久化,一旦Redis异常退出,就会丢失最后一次快照以后更改的所有数据。这就需要开发者根据具体的应用场合,通过组合设置自动快照条件的方式来将可能发生的数据损失控制在能够接受的范围。如果数据很重要以至于无法承受任何损失,则可以考虑使用AOF方式进行持久化。 【AOF方式】   把所有对redis数据库操作的命令,增删改操作的命令。保存到文件中。数据库恢复时把所有的命令执行一遍即可。   默认情况下Redis没有开启AOF(append only file)方式的持久化

redis概述

北慕城南 提交于 2019-12-30 03:04:16
一:Nosql 1.为什么使用nosql   高并发读写   海量数据的高效率存储和访问   高扩展性和高可用性 2.nosql数据库的四大分类   键值存储   列存储   文档数据库   图形数据库 3.四大类nosql的数据库比较    二:redis 1.介绍   REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。   Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。   它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。 2.特点 Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 3.优势 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。 丰富的数据类型 –

Redis学习一:Nosql入门和概述

一世执手 提交于 2019-12-30 01:38:56
现在Redis越来越火,为了适应技术的发展,开始学习一下Redis,在学习Redis之前先学习一下Nosql。 第一部分:入门概述 1.1 互联网时代背景下大机遇,为什么用nosql 1.1.1 单机Mysql的美好年代(好几年前) 当时的业务很相对简单,就是JSP--->Action---->Service---->DAO----->数据库,数据库也就是一个实例而已,无论是Mysql还是Oracle。把这五层缩减为三层的话便是:应用层------>DAO层------>Mysql实例。 以前一个网站的访问量一般不大,用单个数据库可以轻松应付。但是随着时代的发展,上述数据存储遇到了存储的瓶颈: 1) 数据量的总大小,一个机器放不下时(以Mysql为例,单表存储大概三百多万的数据的时候DBA就该进行预警并优化分割了) 2) 数据的索引(B+Tree),一个机器的内存放不下时(众所周知,为表建立索引也是需要消耗内存的,当我们所建立的索引内存盛不下时) 3) 访问量(读写混合)一个实例不能承受 1.1.2 Memcached(缓存)+MySQL+垂直拆分 后来,随着访问量的上升,几乎大部分使用MySQL架构的网站在数据库上都开始出现了性能问题,web程序不再仅仅专注在功能上,同时也在追求性能。程序员们开始大量的使用缓存技术来缓解数据库的压力,优化数据库的结构和索引

NoSQL概述

耗尽温柔 提交于 2019-12-30 01:38:19
NoSql数据库四大分类 键值存储 列存储 文档数据库 图形数据库 NoSQL的特点 易扩展 灵活的数据模型 大数据量,高性能 高可用 Redis 读10w/s 写8w/s Redis的应用场景 缓存 任务队列 网站访问统计 应用排行榜 数据过期处理 分布式集群架构中的session分离 来源: https://www.cnblogs.com/Roni-i/p/10802222.html

redis基础_NOSQL介绍

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-30 01:37:37
1、NOSQL概念   即Not Only SQL 不仅仅是SQL。是一种全新的数据库概念,泛指非关系型数据库。 2、为什么需要NoSQL   目前互联网的`三高`:      1、高负载        短时间内要操作大量的数据,对比以前得简单增删改查,现在很多的项目都包含的太多的东西,买东西送券,这个积分那个积分,以及其他经验值什么的。这就是高负载。     2、高并发        短时间内接受大量的请求,最简单的例子就是每年电商平台指定时间的促销打折。如淘宝的双十一当晚。     3、高可拓展        顾名思义就是系统的拓展性要非常高。   3、NoSQL数据库的四大分类     1、键值储存数数据库       相关产品: Redis 、Tokyo Cabinet等       典型应用:内容缓存,主要用于对处理大量数据的高访问负载       数据模型:一系列键值对       优势:存储的数据缺少结构化     2、列存储数据库       相关产品:Cassandra, HBase ,Riak       典型应用:分布式文件系统       数据模型:以列簇式存储,将用同一系列数据存放在一起。       优势:查找速度快,可拓展性强,更容易进行分布式拓展       劣势:功能相对局限     3、文档性数据库        相关产品: MongoDB