突然萌发关于 redis 的想法(1)】的更多相关文章

接着上篇的说.. 上一篇 : 突然萌发关于 Redis 的想法(1) 今天写商城的时候突然发现,其实商城这种 频繁操作,频繁更新, 等操作,都只需要全部存储在 Redis 中就行了, 可能有部分数据会更新到数据库(在某个时段),但是基本上 Redis 也不会关闭,程序会一直运行,直到用户关闭网页,即使再次打开网页,只要这个用户登陆了, 在 Redis 中还是有这个用户的上次操作的信息(以用户唯一id为key存储Redis), 所以使用Redis操作这些东西效率是非常高的,反正比直接去数据库查询要…
本来昨天就打算写这篇了,但是熬到忘了,至于为什么要写这个是因为我昨天在写 redis 的时候突然想到的 注:此篇文章并没有讲解 redis 内部的使用 或 如何使用redis写代码,等等..仅仅只是突然想到的,如果各位大佬有什么想说的,有什么想补充的,再或者我说的有什么不对的,请不要客气,直接讲出来,我会非常认真的看的 正片开始... 当时想的是,如果一个用户在一个商城系统点击了一个商品添加购物车,并点击自己的购物车,然后购物车展示已添加的商品,这都可以放到redis,看似好像没什么问题,但是我…
Redis是一个支持数据结构更多的键值对数据库.它的值不仅可以是字符串等基本数据类型,也可以是类对象,更可以是Set.List.计数器等高级的数据结构. Memcached也可以保存类似于Set.List这样的结构,但是如果说要向List中增加元素,Memcached则需要把List全部元素取出来,然后再把元素增加进去,然后再保存回去,不仅效率低,而且有并发访问问题.Redis内置的Set.List等可以直接支持增加.删除元素的操作,效率很高,操作是原子的. Memcached数据存在内存中,m…
1.Redis 简介 Redis 是一个支持数据结构更多的键值对数据库.它的值不仅可以是字符串等基本数据 类型,也可以是类对象,更可以是 Set.List.计数器等高级的数据结构. Memcached 也可以保存类似于 Set.List 这样的结构,但是如果说要向 List 中增加元素, Memcached 则需要把 List 全部元素取出来,然后再把元素增加进去,然后再保存回去,不 仅效率低,而且有并发访问问题. Redis 内置的 Set.List 等可以直接支持增加.删除元素的操作,效率很…
当然业界已经有很多成熟的解决方案,我罗列如下: 1.服务器实现的session复制或session共享,这类型的共享session是和服务器紧密相关的,比如webSphere或JBOSS在搭建集群时候可以配置实现session复制或session共享,但是这种方式有一个致命的缺点,就是不好扩展和移植,比如我们更换服务器,那么就要修改服务器配置. 2.利用成熟的技术做session复制,比如12306使用的gemfire,比如常见的内存数据库如redis或memorycache,这类方案虽然比较普…
最近抽时间在学习Java,目前有了一点心得,在此记录下来. 由于我自己之前学过C/C++,而Java的语法与C/C++基本类似,所以这一系列文章我并不想从基础一点点的写,我想根据我已有的C/C++经验,补充一些需要注意的点,或者java中独特的内容,或者将C/C++进行对比来总结一下学习的内容. 为什么要学习java 最开始接触到Java还是在学校中开设的一门java编程语言的课,那个时候感觉java很麻烦,写个helloworld要那么多代码.后来学到web编程,我自己搭建的环境总是报错,而且…
第一章内容介绍 20 第二章JavaSE基础 21 一.Java面向对象 21 1. 面向对象都有哪些特性以及你对这些特性的理解 21 2. 访问权限修饰符public.private.protected, 以及不写(默认)时的区别(2017-11-12) 22 3. 如何理解clone对象 22 二.JavaSE语法(2017-11-12-wl) 26 1. Java有没有goto语句?(2017-11-12-wl) 26 2. & 和 && 的区别(2017-11-12-wl)…
这次分享的方式,采用的是视频的形式,视频是本人录制. 在做项目使用SVN的时候经常有各种错误出现,所以萌发使用git的想法.在学习git的过程中发现一个神器就是分支,虽然在SVN里也有分支,但由于机制的不同,造成他们之间还是有很大的区别的.废话不多说,你们还是看视频吧,由于公司的项目用的一直都是SVN,所以我用git也是比较少,如果有什么错误以及不周全的地方,欢迎批评指正. http://my.tv.sohu.com/us/64032420/81448242.shtml PS:我想直接将视频放在…
1.c#垃圾回收机制 从以下方面入手展开:  1.压缩合并算法   2.代的机制  3.GC调用终结器 Garbage Collector . NET采用了和Java类似的方法由CLR(Common Language Runtime)来管理      .NET的GC机制有这样两个问题: 首先,GC并不是能释放所有的资源.它不能自动释放非托管资源. 第二,GC并不是实时性的,这将会造成系统性能上的瓶颈和不确定性. GC并不是实时性的,这会造成系统性能上的瓶颈和不确定性.所以有了IDisposabl…
基于Twemproxy的Redis集群方案(转) redis3.0 已经发布了几个月了,但是我这等菜鸟到网上还是没有找到很好的关于搭建redis3.0集群的文章,而且好像很多公司的redis版本还保持在2.8.*上,我估计没几个公司会直接出来新产品就会直接用吧,所以还是基于redis2.8来弄吧.由于是从redis3.0加入了不错的集群方案,那么2.8如何弄了. 上网找了一篇文章是针对于redis3.0以下的版本的集群方案,好东西不敢独享,拿出来共勉 http://www.infoq.com/c…
目录 1关于Redis使用的一点想法 1.1进行缓存前,需考虑 1.2进行缓存后,需考虑 1.3缓存使用一段时间后 2编写Redis数据库层规范建议 2.1选择适合的redis客户端 2.2规范化定义key的名称并初始化 2.3 选择合适的数据结构 2.4 规范化定义操作方法 2.5 开始愉快的调用之旅 1关于Redis使用的一点想法 1.1进行缓存前,需考虑 (1)该数据属于短暂保留,例如只保留三天.七天或者一个月,此时建议采用缓存: (2)该数据在某一个时间段请求量很大,此时建议采用缓存:…
看了redis和memcached,想到自己前几年以前会把内存分配及调用和程序写在一起.确实是不合理的.这样的话,主进程就会越来越大,而且模块也不是完全独立.不能做到松耦合. 实质就是把内存的读写I/O和主逻辑分开,相互独立.这样,内存缓冲模块就完全可以做到分布式架构.而主进程设置合理,即使单独某个地方出问题了,也是很小的一块逻辑数据,不会影响到整个系统. 以后有机会,还是自己再用C++写一个逻辑内存管理的独立程序.很多时候,做同样的事情,但是思想不一样了.做出来也确实不一样的.…
前言: 自从CYQ.Data框架出了数据库读写分离.分布式缓存MemCache.自动缓存等大功能之后,就进入了频繁的细节打磨优化阶段. 从以下的更新列表就可以看出来了,3个月更新了100条次功能: 305:处理视图名重复时的问题,同时简化MDataTable的代码,取消MDataTable的ReadFromDbDataReader(统一用CreateFrom(sdr)方法读取.(2016-07-16) 306:优化通过Reader获取列结构(该方法不靠谱,需要重新修正元数据的DataType.S…
单例.哨兵.Cluster redis应用广泛,主要体现于实际场景的可用化,但是对于码农来说初步入手很多理念难以理解:码农的想法就是:为什么我要管那么多,我只想用,能用就行!所以必须将三个场景透明化. SERedisHelper就是将这些场景合并,让码农只关心业务的关键. 实例代码点击这里查看 redis成长之路--(一) redis成长之路--(二) redis成长之路--(三) redis成长之路--(四) redis成长之路--(五) redis成长之路--(六) redis成长之路--(…
小喵的唠叨话:最近京东图书大减价,小喵手痒了就买了本<Redis设计与实现>[1]来看看.这里权当小喵看书的笔记啦.这一系列的模式,主要是先介绍Redis的实现原理(可能很大一部分会直接照搬原作者的描述),加上小喵自己的想法,之后配合Redis官网上的各种相关的操作命令(原书上貌似没有很多的介绍命令). 小喵的个人博客地址: http://miaoerduo.com, 随时欢迎各位的大驾. 原文链接: http://www.miaoerduo.com/redis/redis基本操作-strin…
Redis设计与实现(一~五整合版) by @飘过的小牛 一 前言 项目中用到了redis,但用到的都是最最基本的功能,比如简单的slave机制,数据结构只使用了字符串.但是一直听说redis是一个很牛的开源项目,很多公司都在用.于是我就比较奇怪,这玩意不就和 memcache 差不多吗?仅仅是因为memcache是内存级别的,没有持久化功能.而redis支持持久化?难道这就是它的必杀技? 带着这个疑问,我在网上搜了一圈.发现有个叫做huangz的程序员针对redis写了一本书叫做<redis设…
摘自:http://www.infoq.com/cn/articles/tq-why-choose-redis 传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间. Memcached与MySQL数…
Redis支持简单的事物,但是没有mysql的Innodb支持的那么的完善 我们接下来看一下Redis和Mysql的事物的一个对比:   MySQL Redis 开启 start transaction multi 语句 普通的SQL 普通的命令 失败 rollback 回滚 discard 取消 成功 commit exec 注: 在MySQL和Redis中,如果已经成功的执行了2条语句,但到第3条语句出错 那我们rollback后,前2条语句的影响消失,discard只是结束本次事物,但前两…
传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间. 2.Memcached与MySQL数据库数据一致性问题. 3.Memcached数据命中率低或down机,大量访问直接穿透到DB,MySQL…
redis.c/exitFromChild函数: void exitFromChild(int retcode) { #ifdef COVERAGE_TEST exit(retcode); #else _exit(retcode); #endif } 分了两种情况考虑,如果是执行完RDB dump, AOF rewrite这类退出操作,为防止影响到父进程文件(父进程子进程共享文件描述符, exit函数会刷新子进程拷贝的stdio缓冲区副本),所以调用_exit()函数但如果是在做coverage…
原文链接:http://www.infoq.com/cn/articles/tq-why-choose-redis 传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间. Memcached与MySQ…
该系列基于redis-2.8.18,主要记录自己的理解或者想法.redis以自己支持存储的数据结构丰富吸引了大批人,把memcached比了下去.本文就从简单基本的数据结构入手. 双向链表-adlist typedef struct listNode { struct listNode *prev; struct listNode *next; void *value; } listNode; typedef struct listIter { listNode *next; int direc…
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/101.html?1455869487 我发现经常研究并且为之兴奋的一件事就是对系统进行扩展.现在这对不同的人有着不同的意思.作为移植Monolithic应用到Microservices架构方法中的一部分,如何处理Microservices架构​是我研究RPC的原因. RPC(或者叫做远程进程调用)是一个已经在计算机科学领域存在较长一段时间的概念.对此一种非常简单的理解就是…
上个星期同事做一个业务模块,需要将一个80M的数据存入到redis缓存中,想法总是好的,真操作的时候遇到了HSet超时,我们使用的是C#的 StackExchange.Redis驱动. <redisCacheClient allowAdmin="true" ssl="false" connectTimeout="5000" abortConnect="false" database="0"> &…
最近在自己的工作中,把其中一个PHP项目的缓存从以前的APC缓存逐渐切换到Redis中,并且根据Redis所支持的数据结构做了库存维护功能.缓存是在业务层做的,准确讲应该是在MVC模型中Model的ORM里面.主要逻辑就是先查缓存,查不到的话再查数据库.不过这些不是本文的主要内容,下面我把库存管理功能的缓存设计思路分享一下,希望能带给大家一些收获,有不足之处或者有更好方案的,也希望各位多多指教. 一.业务背景 为了略去我们公司项目背景,我决定把这次的问题类比成一个考卷上的问题.至于业务细节,大家…
此文根据[QCON高可用架构群]分享内容,由群内[编辑组]志愿整理,转发请注明出处. 苏东旭,Ping CAP CTO,Codis作者 开源项目Codis的co-author黄东旭,之前在豌豆荚从事infrastructure相关的工作.现在在创业公司PingCAP. 本次分享的内容主要包括五个大部分: Redis.RedisCluster和Codis; 我们更爱一致性; Codis在生产环境中的使用的经验和坑们; 对于分布式数据库和分布式架构的一些看法; Q & A环节.   大家好,我是开源…
本系列都是翻译REDIS作者的博文  另外加上我自己的一点点理解  希望有问题大家一起讨论 http://antirez.com/news/77 原文地址 在利用REDIS做分布式锁时基本持有2种观点: 1种认为这是非常 快速的 很伟大的案例 认为redis解决了一个非常难解决的问题,但是另一方面却不是这样的观点,认为利用REDIS做分布式锁是非常恼火的,完全是在错误的使用REDIS 作者认为2者都正确 也就是作者认为2者都说的过去  那我们来看看作者是怎么阐述的: Safety and Liv…
最近关注了一下ssdb,它的特点是基于文件存储系统所以它支撑量大的数据而不因为内存的限制受取约束.从官网的测试报告来看其性能也非常出色和redis相当,因此可以使用它来代替redis来进行k-v数据业务的处理.想法总是美好的,不过现实中就可能带点骨感. 幸好ssdb是兼容redis的部份协议,所以直接用redis client库就可以进行一个压力测试.以于针对Redis和ssdb的几个读操进行一个简单的性能测试对比,这个测试不是直接在本机调用Redis和ssdb. 而是通过一个程序在别的服务器上…
先说我自己用的情况: 最先用的memcache ,用于键值对关系的服务器端缓存,用于存储一些常用的不是很大,但需要快速反应的数据 然后,在另一个地方,要用到redis,然后就去研究了下redis. 一看,显示自己安装了php扩展,因为有服务器上的redis服务端,自己本地就没有安装,其实用法和memcache基本一样,可能就是几个参数有所不 同.当然 它们缓存的效果也不一样,具体的哪里不一样,一下就是一些资料,和自己的总结 1. Redis和Memcache都是将数据存放在内存中,都是内存数据库…
[Markdown阅读][1] 今天上班的时候收到一个需要短链接的需求,之前的做法都是使用了新浪的短链接API(https://api.weibo.com/2/short_url/shorten.json).但一是外网访问,二可能是新浪有所限制(毕竟是免费的),性能肯定不是太好.于是就想能不能自己实现一个,这样内网访问肯定快不少. 下班在班车上想了下,初步有些思路,记录一下,有什么说错的,欢迎指正.关于短链接的问题,我首先想到是两个问题: 1. 持久化的问题,是否有必要保证短链接永久有效? 2.…