`
zhb8015
  • 浏览: 378092 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Spring Roo杂谈
浏览量:0
社区版块
存档分类
最新评论

nosql学习笔记

阅读更多

 

一、概念

1redis是一个高性能的key-value存储系统,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)list(链表)set(集合)zset(有序集合)

2、特点

A性能极高10万每秒的读写频率(性能案例)

B支持的操作:这些数据类型都支持push/popadd/remove及取交集并集和差集及更丰富(正则)的操作,而且这些操作都是原子性的,即支持事务。在此基础上,redis支持各种不同方式的排序

memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis周期性的把更新的数据写入磁盘或者把修改操作追加到文件,并且在此基础上实现了master-slave(主从)同步解决了memcache断电后数据完全丢失的问题。

C丰富的数据类型,并支持publish/subscribe,key 过期等特性。

 

3、出现意义:Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了PythonRubyErlangPHP客户端,使用很方便。

4、内存优化:Redis Hash内部是一个HashMap,如何该map成员比较少时会采用一个一维的数组方式来紧凑存储该Map,省去了大量指针的内存开销。HashMap操作和查找时间复杂度为O(1),数组O(n)

4、性能案例

下面是官方的bench-mark数据:

  测试完成了50个并发执行10W个请求。

  设置和获取的值是一个256字节字符串。

  Linux box是运行Linux 2.6,这是X3320 Xeon 2.5 ghz

  文本执行使用loopback接口(127.0.0.1)

  结果:写的速度是11W/s,读的速度是8.1W/s 

5、常用命令:参考网址

 

二、操作

1、启动redis: 

输入命令:redis-server.exe redis.conf 

 

2、设置客户端: 

输入命令:redis-cli.exe -h 202.117.16.133 -p 6379 

 

3、设置一个Key并获取返回的值

Java代码

$ ./redis-cli set mykey somevalue?? 

OK?? 

$ ./redis-cli get mykey?? 

Somevalue? 

4、如何添加值到list

Java代码

$ ./redis-cli lpush mylist firstvalue?? 

OK?? 

$ ./redis-cli lpush mylist secondvalue?? 

OK?? 

$ ./redis-cli lpush mylist thirdvalue?? 

OK?? 

$ ./redis-cli lrange mylist 0 -1? 

. thirdvalue?? 

. secondvalue?? 

. firstvalue?? 

$ ./redis-cli rpop mylist?? 

firstvalue?? 

$ ./redis-cli lrange mylist 0 -1? 

. thirdvalue?? 

. secondvalue? 

5redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的 ab 工具). window并发极限是60

./redis-benchmark -n 100000 –c 50? 

??? ====== SET ======?? 

??? 100007 requests completed in 0.88 seconds (译者注:100004 查询完成于 1.14 秒 )?? 

50 parallel clients (译者注:50个并发客户端)?? 

3 bytes payload (译者注:3字节有效载荷)?? 

keep alive: 1 (译者注:保持1个连接)?? 

58.50% <= 0 milliseconds(译者注:毫秒)?? 

99.17% <= 1 milliseconds?? 

99.58% <= 2 milliseconds?? 

99.85% <= 3 milliseconds?? 

99.90% <= 6 milliseconds?? 

100.00% <= 9 milliseconds?? 

114293.71 requests per second(译者注:每秒 114293.71 次查询)

关闭REDIS

$redis-cli  shutdown

关闭指定端口

$redis-cli -p 6379 shutdown

 

 

三、复制

1、主从复制:Amazon网站10G复制21秒完成

2、主从启动?

3master可以拥有多个SLAVE,多个SLAVE可以连接到一个MASTER,也可以连接到其他的SLAVE上。

4、可以注释掉MASTER中的持久化,即save配置。只需要在SLAVE上配置持久化。提高系统的伸缩性。

四、应用案例

1

 

五、优化经验

1

参考网址:

主从配置:

http://ybzshizds.iteye.com/blog/1447981

http://www.cnblogs.com/redcreen/archive/2011/02/15/1955523.html

http://baike.baidu.com/view/4595959.htm

linux安装:http://www.oschina.net/question/12_18065

windows::http://zheng12tian.iteye.com/blog/1471726

doc::http://redis.io/documentation

command reference:::? http://redis.readthedocs.org/en/latest/

community:::? http://redis.com.cn/

http://redis.io/

redis ppt:::???????? http://www.open-open.com/doc/view/f53ea1b4802045cdb0c8256eb5470a57

 

 

分享到:
评论

相关推荐

    NoSQL学习笔记

    NoSQL学习笔记,分析常用NoSQL技术优劣,进行对比,并深入分析了Memcached数据缓冲技术。

    NoSQL整理笔记资料共享

    整理了一些有关NoSQL的学习笔记,非常系统。希望能够对学习NoSQL的朋友有所帮助

    大数据-大数据挑战与NoSQL数据库技术

    《大数据挑战与NoSQL数据库技术》... 《大数据挑战与NoSQL数据库技术》对大数据时代面临的挑战,以及NoSQL数据库的基本知识做了清晰的阐述,有助于读者整理思路,了解需求,并更有针对性、有选择地深入学习相关知识。

    MongDB学习笔记.docx

    关于MongDB的学习笔记,参考了网上的资料整理的,希望对大家有用,如果文档有什么问题的话,希望大家指摘。

    Redis全套学习笔记

    Redis全套学习笔记,分享的是整理的《Redis 全套学习笔记.pdf》,图文并茂,特别详细,基本上涵盖了 Redis 所有知识点。redis是一个高性能的key-value数据库,它是完全开源免费的,而且redis是一个NOSQL类型数据库,...

    mongodb学习笔记

    mongodb个人心得,nosql个人总结学习笔记

    HBase学习笔记(个人整理)

    个人笔记整理(带目录),共8个章节: 一.Hbase快速入门 二.Apache HBase配置 三.Hbase数据存储 四.HBase协处理器与二级索引 五.PHOENIX操作HBASE 六.HBase设计与优化 七.HBase与Spark集成 八.Trafodion操作HBase 共146...

    JAVA 五年的工作经验和学习笔记

    由于本人目前允许上传的资源太小,所以无法上传整个的技术学习笔记(JAVA 五年的工作经验和学习笔记),待以后有机会会分享给大家。 技术体系包括: J2SE/J2ME/J2EE/JAVA代码优化/Flex(BlazeDS、PureMVC等技术)...

    mongdb学习笔记

    Mongodb,分布式文档存储数据库,由C++...MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。

    Redis学习笔记

    比较好的Nosql选择,适合初学者,比较实惠。

    SpringBoot2NoSQL:一站式的NoSQL学习教程SpringBoot开发教程学习手册。包含SpringBoot2.0 + Redis,Ehcache,MongoDB,ElasticSearch,Cassandra,CouchBase,Solr,Neo4j,Gemfire共10种常用的NoSQL数据库操作,工具类,演示代码

    一站式SpringBoot for NoSQL开发教程学习手册。 含SpringBoot2.0 +: 雷迪斯 高速缓存 MongoDB 弹性搜索 卡桑德拉 CouchBase 索尔 Neo4j 宝石火 共9种常用NoSQL数据库操作,工具类,演示代码。用于整理日常常用...

    Redis的学习笔记

    之前整理的redis的一些相关知识,从安装到配置,主要是介绍各数据类型和命令

    Mysql的学习笔记01

    模块1:连接客户端,这个一般是指mysql基于mysql通讯协议的驱动程序。比如mysql的Java的JDBC驱动程序——mysql-connector-java-5.1.26-bin.jar。再比如.net平台的操作数据库的规范ADO。 模块2:连接池,Mysql自身有...

    MongoDB系列教程(一):NoSQL起源

    主要介绍了MongoDB系列教程(一):NoSQL起源,本文讲解了为什么出现NoSQL、NoSQL历史、SQL和NoSql的区别、NoSQL数据库类型等内容,需要的朋友可以参考下

    深入云计算(MongoDB管理与开发实战详解--学习笔记

    MongoDB是当前NoSQL数据库产品中最热门的一种。它在许多场景下可用于代替传统的关系型数据库或者键/值存储方式,MongoDB使用C++开发

    Python 网络爬虫(Web Crawlers)学习笔记。.zip

    常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-...

    路飞学城爬虫开发+APP逆向超级大神班学习笔记.zip

    常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-...

    python爬虫仓库,包括一些学习笔记,例如基础、简单的画图词云数据分析。主要还是爬虫.zip

    常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-...

    NodeJS学习笔记之MongoDB模块

     MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。  MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的...

    MongoDB学习笔记(一) MongoDB介绍与安装方法

     最近开始学习非关系型数据库MongoDB,却在博客园上找不到比较系统的教程,很多资料都要去查阅英文网站,效率比较低下。本人不才,借着自学的机会把心得体会都记录下来,方便感兴趣的童鞋分享讨论。部分资源出自...

Global site tag (gtag.js) - Google Analytics