缓存技术在分布式中的实践与原理(一.redis入门)

  • 时间:
  • 浏览:0
  • 来源:跟我学网络

引言

在大型分布式项目中,会存在大量的查询请求,在数据库层面会进行扩容、分库分表、集群化主从复制等操作进行负载能力的提升。但是DB层面的磁盘IO还是比较高昂的操作,如下图(计算机硬件延迟对比图):

所以在分布式领域出现了很多NoSQL方案去优化大型网站等项目的查询请求。

NoSQL百花齐放,如何选择?总体上这些NoSQL主要用于解决以下几种问题:

1.少量数据存储,高速读写访问。

2.海量数据存储,分布式系统支持,数据一致性保证,方便的集群节点添加/删除。

3.这方面最具代表性的是dynamo和bigtable 2篇论文所阐述的思路。前者是一个完全无中心的设计,节点之间通过gossip方式传递集群信息,数据保证最终一致性,后者是一个中心化的方案设计,通过类似一个分布式锁服务来保证强一致性,数据写入先写内存和redo log,然后定期compat归并到磁盘上,将随机写优化为顺序写,提高写入性能。

4.Schema free,auto-sharding等。比如目前常见的一些文档数据库都是支持schema-free的,直接存储json格式数据,并且支持auto-sharding等功能,比如MongoDB。

所以在分布式项目里,越来越多的性能需求在 all in memory层面,这也是redis最适合的场景,当然,它也支持持久化。

本专题围绕大型分布式项目中对缓存技术的使用展开,内容会涉及redis以及memcached在网络IO模型、内存管理机制、集群方案、all in memory与persistence选择、主从复制、性能优化、pipelining、LRU等细节。

简介:本篇博客主要讲redis入门安装以及使用,以及常用命令介绍。

目录:

1.redis安装使用

2.常用命令

正文:

redis简介:

Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。从2015年6月开始,Redis的开发由Redis Labs赞助,而2013年5月至2015年6月期间,其开发由Pivotal赞助。在2013年5月之前,其开发由VMware赞助。根据月度排行网站DB-Engines.com的数据显示,Redis是最流行的键值对存储数据库。

官方网站:https://redis.io/

unix下安装使用:

首先进入https://redis.io/站点,点击download导航,进入到installation提示

打开linux或者macos终端,按照Installation提示命令依次输入即可成功安装至unix系统下

安装成功以后会有redis文件夹出现:

上述是我电脑上安装redis以后的文件目录结构,我的习惯是复制一份conf,之后启动server端使用自己的配置文件

具体方法如下:

-> sudo  cp redis.conf  xx/xx/test.conf

之后用redis-server test.conf启动server服务

出现上图表示redis服务已经成功启动,端口是6379,pid是9289(kill9忍不住?)

server端成功启动以后就另启一个终端,进入redis-client端

上图右侧就是redis-cli端,进入127.0.0.1:6379之后就可以使用redis命令进行通讯了。

以上就完成了redis在macos下的安装与使用,linux同理啦,windows的话更简单,下载一下zip包,解压,就不多介绍了.

关于redis更多命令,可以直接在redis官网的Documentation中查找,里面内容很全面,每个数据操作的命令均有时间复杂度说明以及数据结构选型说明等,博主就不一一示范了,感兴趣的可以自己尝试。

最后讲一下redis服务端关闭的方法:

直接在cli端终端输入shutdown即可,如果shutdown异常,ps aux|grep redis还出现redis服务,多半是因为dump.rdb没有权限,可以 sudo chmod 757 6379或者进入到redis.conf指定的dir路径里 ls -l查看权限,给dump.rdb添加g+w即可,测试环境还有一种暴力的方式就是kill -9 pid。这一块东西涉及到conf配置文件详解以及rdb aof等同步方式。本节不细讲,留待后续章节进行原理分析,本节就简单介绍一下redis入门。

以后章节将介绍redis的网络IO模型(epoll)以及集群方案(cluster、客户端hash等)、内存使用效率(对molloc free的封装)、异步主从复制(SYNC PSYNC rdb aof等)以及跟memcached对比(memcached Slab Allocation内存管理与redis molloc封装在内存利用率 性能上对比等)、LRU淘汰、事务实现等实践与原理。

推荐阅读更多精彩内容

  • Redis详细介绍 Redis NoSQL:Not Only SQL,是非关系型数据库; Web2.0对于上万次的...

  • 转载地址:http://gnucto.blog.51cto.com/3391516/998509 Redis与Me...

  • 分布式缓存技术PK:选择Redis还是Memcached? 经平台同意授权转载 作者:田京昆(腾讯后台研发工程师)...

  • 超强、超详细Redis入门教程 转载2017年03月04日 16:20:02 16916 转载自: http://...

  • 我们总免不了一些的所谓“一时冲动”,或许囿于喜欢,心上来的总是难以抗拒。 我读书一来心静我喜欢文字喜欢得不得了,它...