ITKeyword,专注技术干货聚合推荐

注册 | 登录

Redis介绍及环境搭建

相关推荐:各种nosql数据库的比较Cassandra,MongoDB,CouchDB,Redis,Riak,HBase

CouchDB开发语言:: Erlang主要优点: 数据一致性,易用许可: ApacheProtocol: HTTP/REST适用: 积累性的、较少改变的数据。或者是需要版本比

Redis一、Redis介绍1.1 NoSQL数据库

NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如: 1、High performance - 对数据库高并发读写的需求 web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。其实对于普通的BBS网站,往往也存在对高并发写请求的需求,例如网站的实时统计在线用户状态,记录热门帖子的点击次数,投票计数等,因此这是一个相当普遍的需求。2、Huge Storage - 对海量数据的高效率存储和访问的需求 类似Facebook,twitter,Friendfeed这样的SNS网站,每天用户产生海量的用户动态,以Friendfeed为例,一个月就达到了2.5亿条用户动态,对于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。再例如大型web网站的用户登录系统,例如腾讯,盛大,动辄数以亿计的帐号,关系数据库也很难应付。 3、High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求 在基于web的架构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,你的数据库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移,为什么数据库不能通过不断的添加服务器节点来实现扩展呢?

NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。1.2 NoSQL数据库分类1、键值(Key-Value)存储数据库相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB典型应用: 内容缓存,主要用于处理大量数据的高访问负载。 数据模型: 一系列键值对优势: 快速查询劣势: 存储的数据缺少结构化2、列存储数据库相关产品:Cassandra, HBase, Riak典型应用:分布式的文件系统数据模型:以列簇式存储,将同一列数据存在一起优势:查找速度快,可扩展性强,更容易进行分布式扩展劣势:功能相对局限3、文档型数据库相关产品:CouchDB、MongoDB典型应用:Web应用(与Key-Value类似,Value是结构化的)数据模型: 一系列键值对 优势:数据结构要求不严格 劣势: 查询性能不高,而且缺乏统一的查询语法4、图形(Graph)数据库相关数据库:Neo4J、InfoGrid、Infinite Graph典型应用:社交网络数据模型:图结构优势:利用图结构相关算法。劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。1.3 RedisRedis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:字符串类型

String散列类型 Hash列表类型 List集合类型 Set有序集合类型 SortedSetredis的应用场景: 缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)分布式集群架构中的session分离。聊天室的在线好友列表。任务队列。(秒杀、抢购、12306等等)应用排行榜。网站访问统计。数据过期处理(可以精确到毫秒)二、Redis 搭建redis需要安装在linux服务器上运行测试,本教程使用 linux虚拟机及ssh客户端进行功能测试。2.1 虚拟机创建Centos6.5虚拟机作为linux服务器。 虚拟机ip:192.168.200.1682.2 ssh客户端在开发环境(windows)安装ssh客户端,本教程使用SecureCRT作为ssh客户端连接虚拟机。2.3 redis的安装环境redis是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境。安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++2.4 redis的安装2.4.1源码下载从官网下载

http://downlo

相关推荐:四类NoSQL数据库适用场景总结

键值数据库适用案例现在讲几个适合使用键值数据库的情况。1 存触会话信息通常来说,每一次网络会话都是唯一的,所以分配给它们的session id 值也各不相

ad.redis.io/releases/redis-3.0.0.tar.gz

将redis-3.0.0.tar.gz拷贝到虚拟机Linux /usr/local目录下2.4.2 安装步骤1、解压源码tar -zxvf redis-3.0.0.tar.gz

2、编译源码进入解压后的目录cd /usr/local/redis-3.0.0编译 make3、安装到指定目录本次安装到 /usr/local/redis目录cd /usr/local/redis-3.0.0 make PREFIX=/usr/local/redis install4、拷贝配置文件redis.conf到安装目录redis.conf是redis的配置文件,redis.conf在redis源码目录。注意修改port作为redis进程的端口,port默认6379。在源码的根目录下有redis.conf配置文件,将其拷贝到安装目录中的confcp /usr/local/redis-3.0.0/redis.conf

/usr/local/redis/bin2.5 redis的启动2.5.1 前端启动直接运行bin/redis-server将以前端模式启动,前端模式启动的缺点是ssh命令窗口关闭则redis-server程序结束,不推荐使用此方法。2.5.2 后端启动修改redis.conf配置文件, daemonize yes 以后端模式启动。 执行如下命令启动redis: cd /usr/local/redis ./bin/redis-server ./bin/redis.conf2.5.3 启动多个进程方法1:启动时指定端口可在一台服务器启动多个redis进程。cd /usr/local/redis/bin./redis-server ./redis.conf --port 6380方法2:创建多个redis目录,以端口号命名,比如:创建6379、6380两个目录,将redis的安装文件bin和conf拷贝至这两个目录。修改6379目录下的redis.conf设置端口号为6379修改6380目录下的redis.conf设置端口号为6380启动6379和6380目录下的redis-server程序:cd 6379./redis-server . /redis.confcd 6380./redis-server . /redis.conf2.5 redis停止强行终止Redis进程可能会导致redis持久化数据丢失。正确停止Redis的方式应该是向Redis发送SHUTDOWN命令,方法为:cd /usr/local/redis ./bin/redis-cli shutdown2.6 redis 客户端在redis的安装目录中有redis的客户端,即redis-cli(Redis Command Line Interface),它是Redis自带的基于命令行的Redis客户端。2.6.1 连接redis 服务端执行bin/redis-cli连接redis服务端:

./redis-cli

redis-cli默认连接本机的redis,本机的redis没有启动则错误。 指定连接redis服务的ip和端口: ./redis-cli -h 192.168.200.128 -p 63792.6.2 测试redis1、ping指令

用于测试客户端与服务端之间的连接是否正常,如果正常会回复pong 2、set/get 使用set和get可以像redis设置数据和获取数据

set name zhangsan

get name 会返回”zhangsan”

$(function () {

$('pre.prettyprint code').each(function () {

var lines = $(this).text().split('\n').length;

var $numbering = $('<ul/>').addClass('pre-numbering').hide();

$(this).addClass('has-numbering').parent().append($numbering);

for (i = 1; i <= lines; i++) {

$numbering.append($('<li/>').text(i));

};

$numbering.fadeIn(1700);

});

});

相关推荐:NoSQL数据库Redis使用命令简介

NoSQL 数据库Redis使用命令简介NOSQL数据库可以按照它们的数据模型分成4类:1.键-值对存储库(Key-Value) redis…… 2.BigTable实现(BigTable-imple

Redis一、Redis介绍1.1 NoSQL数据库 NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。随着互联网web2.0网站的兴起,非关系型的数据库现在...

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。