redis_笔记
1.redis是什么
这个问题的结果影响了我们怎么用redis。如果你认为redis是一个key value store,那可能会用它来
代替mysql;如果认为它是一个可以持久化的cache,可能只是它保存一些频繁访问的临时数据。
Redis是Remote dictionary server的缩写,在redis官网的副标题是a persistent key-value database
With bulit-in net interface written in ansi-c for posix systems,这个定义偏向key value store。还有一些看法
认为redis是一个memory database,因为它的高性能都是基于内存操作的基础。另外一些人认为
Redis是一个data structure server,因为redis支持复杂的数据特性,比如list,set等。对redis的作用
的不同解读决定你对redis的使用方式。
互联网数据目前基本使用两种方式存储,关系数据库或key value。但是这些互联网业务本身并不属于
这两种数据类型,比如用户在社会化平台中的关系,它是一个list,如果要用关系数据库存储就需要
转换成一种多行记录的形式,这种形式存在很多冗余数据,每一行需要存储一些重复信息。如果用
Key value存储则修改和删除比较麻烦,需要将全部数据读出再写入。Redis在内存中设计了各种数据类型,
让业务能够高速原子地访问这些数据结构,并且不需要关系持久存储的问题,从架构上解决了前面
两种存储需要走的一些弯路的问题。
2.redis不可能比memcache快
很多开发者都认为redis不可能比memcached快,memcached完全基于内存,而redis具有持久化
保存特性,即使是异步的,redis也不可能比memcached快。但是测试结果基本是redis占绝对优势。
一直思考这个原因,目前想到的有这几方面:
Libevent。和memcached不同,redis并没有选择libevent,libevent为了迎合通用性造成代码庞大
(目前redis代码还不到libevnet的1/3)及牺牲了在特定平台的不少性能。Redis用libevent中两个文件
修改实现了自己的epoll event loop。业界不少开发者也建议redis使用另外一个libevent高性能替代
Libdev,但是作者还是坚持redis应该小巧并去依赖的思路。一个印象深刻的细节是编译redis之前并
不需要执行./configure。
CAS问题。
注:笔记部分可能参考其他作者内容的一个记录,仅为加深自己对概念的理解,这里一些可能忘记参考谁的了,所以望见谅。
redis_笔记的更多相关文章
- REDIS基础笔记
Redis基础笔记 资源链接 简介 简介 安装 五种数据类型及相应命令 1. 字符串类型 2. 散列类型 3. 列表类型 4. 集合类型 5. 有序集合 其他 事务 SORT 生存时间 任务队列 发布 ...
- git-简单流程(学习笔记)
这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- SQL Server技术内幕笔记合集
SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- NET Core-学习笔记(三)
这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...
- springMVC学习笔记--知识点总结1
以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
随机推荐
- Oracle DataGuard数据备份方案详解
Oracle DataGuard是一种数据库级别的HA方案,最主要功能是冗灾.数据保护.故障恢复等. 在生产数据库的"事务一致性"时,使用生产库的物理全备份(或物理COPY)创建备 ...
- Codeforces Codeforces Round #319 (Div. 2) C. Vasya and Petya's Game 数学
C. Vasya and Petya's Game Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/ ...
- #define和预编译指令
今天再总结一点#define和预处理指令的使用. 预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器.可见预处理过程先于编译器对源代码进行处理. 预处理指令是以#开头的代码行,#后是 ...
- h5拖放-拖拽购物车
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- APP运营干货分享
从移动互联网市场总监岗位出发,从几个方面来阐述移动互联网部门如何制定一份运营推广策划案,至于关于移动互联网,移动电商是大趋势这些虚的.空泛的文字,不展开说了. 一.竞品分析 1.选择竞品,做好定位(选 ...
- [Doc ID 1590988.1]如何清理E-Business Suite的缓存(Apache/iAS, Cabo, Modplsql, Browser, Jinitiator, Java, Portal, WebADI)?
文档内容 目标 解决方案 参考 适用于: Oracle Applications Technology Stack - 版本 11.5.9 到 12.2.2 [发行版 11.5 到 12. ...
- Visual Studio dte 获取代码方法注释
- 虚反矩阵指令pinv之应用
pinv指令 在多数解的例子中,有时并不是仅要将其中一变数设定为零之解.为使整个系统得到最佳化,亦可利用pinv指令求得最小模组之合理解.pinv(A)又称为虚反矩阵(pseudoinvers ...
- MATLAB 误差函数erf(x)
误差函数: 1.误差函数定义为: 它的性质如下: 2 互补误差函数定义为: 它具有如下性质: 下表给出了误差函数的部分数值: 0.00 0.00000 0.05 0.05637 0.10 0.11 ...
- Nim游戏(组合游戏Combinatorial Games)
http://baike.baidu.com/view/1101962.htm?fr=aladdin Nim游戏是博弈论中最经典的模型(之一),它又有着十分简单的规则和无比优美的结论 Nim游戏是组合 ...