zoukankan      html  css  js  c++  java
  • Redis入门教程(一)

    一、NoSQL概述

    1、什么是NoSQL

    NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

    2、NoSQL解决的问题

    (1)对数据库的高并发读写需求

    (2)对海量数据的高效率存储及访问

    (3)对数据库的高可扩展性和高可用性需求

    3、主流的NoSQL产品

    4、NoSql数据库的四大分类

    (1)键值存储数据库

    相关产品:Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB

    典型应用:内容缓存,主要用于处理大量数据的高访问负载

    数据模型:一系列的键值对

    优势:快速查询

    劣势:存储的数据缺少结构化

    (2)列存储数据库

    相关产品:Cassandra,Hbase,Riak

    典型应用:分布式文件系统

    数据模型:以列簇式存储,将同一列数据存在一起

    优势:查找速度块,可扩展性强,更容易进行分布式扩展

    劣势:功能相对局限

    (3)文档型数据库

    相关产品:CouchDB,MongoDB

    典型应用:与key-value类似,value是结构化的

    数据模型:一系列的键值对

    优势:数据结构要求不严格

    劣势:查询性能不高,而且缺乏统一查询语法

    (4)图形数据库

    相关数据库:Neo4j,infogrid,infinite Graph

    典型应用:社交网络

    数据模型:图结构

    优势:利用图结构相关算法

    劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案

    5、NoSql特点

    在大数据存取上具备关系型数据库无法比拟的性能优势,例如:

    (1)易扩展

    NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。

    (2)大数据量

    高性能NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它 的无关系性,数据库的结构简单。

    (3)灵活的数据模型

    NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的Web2.0时代尤其明显。

    (4)高可用

    NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra, HBase模型,通过复制模型也能实现高可用。综上所述,NoSQL的非关系特性使其成为了后Web2.0时代的宠儿,助力大型Web2.0网站的再次起飞,是一项全新的数据库革命性运动。

    二、Redis概述

    1、什么是Redis

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

    redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
    Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。
    Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
    redis的官网地址,非常好记,是redis.io。(特意查了一下,域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地)
    目前,Vmware在资助着redis项目的开发和维护。
    2、Redis性能
    测试完成了50个并发执行100000个请求。
    设置和获取的值是一个256字节字符串。
    Linux box是运行Linux 2.6,这是X3320 Xeon 2.5 ghz。
    文本执行使用loopback接口(127.0.0.1)。
    结果:读的速度是110000次/s,写的速度是81000次/s 。
    3、Redis的应用场景
    (1)缓存
    (2)聊天室的在线好友列表
    (3)任务队列
    (4)应用排行榜
    (5)网站访问统计
    (6)数据过期处理
    (7)分布式集群架构的session分离

    三、Redis安装

    以下步骤在Centos6.5下进行操作

    1)安装redis编译的c环境,yum install gcc-c++

    2)将redis-2.6.16.tar.gz上传到Linux系统中

    3)解压到/usr/local下  tar -xvf redis-2.6.16.tar.gz -C /usr/local

    4)进入redis-2.6.16目录 使用make命令编译redis

    5)在redis-2.6.16目录中 使用make PREFIX=/usr/local/redis install命令安装 redis到/usr/local/redis中

    6)拷贝redis-2.6.16中的redis.conf到安装目录redis中

    7)如需远程连接redis,需配置redis端口6379在linux防火墙中开发

    /sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

    /etc/rc.d/init.d/iptables save

    至此,redis已经安装成功。

    四、Redis启动

     1、前端启动

    直接运行redis-server即可,前端模式的缺点是启动后,不能对其进行其他操作,如果操作必须使用ctrl+c,同时redis-server结束,不推荐使用此方法。

    2、后端启动

    (1)首先需要修改redis.conf文件,将其中的daemonize 改为yes。

    (2)启动时指定配置文件

    ./redis-server ./redis.conf

    五、Redis停止

    (1)查找redis的pid

    ps -ef | grep redis

    (2)使用kill

    kill -9 pid
  • 相关阅读:
    微信支付
    微信分享
    微信获取用户
    js处理富文本编辑器转义、去除转义、去除HTML标签
    最新亲测能用的手机号码正则
    JS监听页面滚动到底部事件
    解决windows系统80端口被占用问题
    thinkphp5.0配置nginx重写规则
    php关于private、protected、public的区别
    centeros7远程访问mysql5.7
  • 原文地址:https://www.cnblogs.com/jichi/p/10285346.html
Copyright © 2011-2022 走看看