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

注册 | 登录

Redis介绍及环境搭建

qq_28334711 分享于 2016-08-05

推荐:NoSQL数据库之Redis的介绍及安装

较流行的 NoSQL数据库Redis数据库, 了解过NoSQL数据库的童鞋都知道,NoSQL更注重的是对 海量数据存取的性能、分布式、 扩展性支持上, 并不需要传统关系数据库

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 Redis

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如
下:
字符串类型  String
散列类型 Hash
列表类型 List
集合类型 Set
有序集合类型 SortedSet

redis的应用场景: 
缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)
分布式集群架构中的session分离。
聊天室的在线好友列表。
任务队列。(秒杀、抢购、12306等等)
应用排行榜。
网站访问统计。
数据过期处理(可以精确到毫秒)

二、Redis 搭建

redis需要安装在linux服务器上运行测试,本教程使用 linux虚拟机及ssh客户端进行功能测试。

2.1 虚拟机

创建Centos6.5虚拟机作为linux服务器。
虚拟机ip:192.168.200.168

2.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://download.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
编译 make

3、安装到指定目录

本次安装到 /usr/local/redis目录
cd /usr/local/redis-3.0.0 
make PREFIX=/usr/local/redis install

4、拷贝配置文件redis.conf到安装目录

redis.conf是redis的配置文件,redis.conf在redis源码目录。
注意修改port作为redis进程的端口,port默认6379。
在源码的根目录下有redis.conf配置文件,将其拷贝到安装目录中的conf
cp /usr/local/redis-3.0.0/redis.conf  /usr/local/redis/bin

2.5 redis的启动

2.5.1 前端启动

直接运行bin/redis-server将以前端模式启动,前端模式启动的缺点是ssh命令窗口关闭则redis-server程序结束,不推荐使用此方法。

推荐:NoSQL数据库-MongoDB和Redis

NoSQL数据库-MongoDB和Redis   发布于2012-12-20,来源:比特网   1NoSQL简述 CAP(Consistency,Availabiity,Partitiontolerance)理论告诉我们,一个分布式系

2.5.2 后端启动

修改redis.conf配置文件, daemonize yes 以后端模式启动。
执行如下命令启动redis:
cd /usr/local/redis
./bin/redis-server ./bin/redis.conf

2.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.conf
cd 6380
./redis-server . /redis.conf

2.5 redis停止

强行终止Redis进程可能会导致redis持久化数据丢失。正确停止Redis的方式应该是向Redis发送SHUTDOWN命令,方法为:

cd /usr/local/redis
./bin/redis-cli shutdown

2.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 6379

2.6.2 测试redis

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

设置密码的步骤如下:
vi redis.conf #此文件默认在根目录下。

Redis设置密码

vim redis.conf文件。找到requirepass foobared去掉注释,foobared改为自己的密码,我在这里改为
requirepass 123456
切换到 bin目录下。
重启服务 ./redis-server /home/logs/redis-2.8.4/redis.conf
测试连接:./redis-cli -h 115.28.240.103 -p 6379
输入命令 会提示(error) NOAUTH Authentication required. 这是属于正常现象。
我们输入 auth 123456#你刚才设置的密码

推荐:NoSQL数据库之Redis数据库:Redis的介绍与安装部署

 NoSQL(NoSQL = Not Only SQL),它指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类

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

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

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

您的注册邮箱: 修改

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

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