`
zhb8015
  • 浏览: 397313 次
  • 性别: 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的学习笔记中,我们首先接触到的是CAP理论,它是NoSQL数据库设计的基础。CAP理论指出,在分布式系统中,无法同时保证一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)。...

    Redis学习笔记.pdf

    NoSQL数据库是随着互联网技术的发展应运而生的,为了应对传统关系型数据库在处理大规模、高并发数据时出现的性能瓶颈。NoSQL,即"Not Only SQL",主要指的是非关系型的数据库,它们能够提供更加灵活的数据存储解决...

    Redis全套学习笔记-带章节目录-114页.pdf

    Redis全套学习笔记 Redis是一种基于内存的NoSQL数据库,具有高性能、可扩展性和灵活性等特点。以下是Redis的详细知识点: 安装和启动 * 安装Redis可以通过下载软件包或使用yum、apt-get等安装工具进行安装。 * ...

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

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

    redis学习笔记.docx

    Redis学习笔记 Redis是基于键值对存储的NoSQL数据库,可以用来存储和检索数据。下面是Redis的基础知识点: 基础命令 * set key value:保存一个数据,重复set相同的key只会保存最新的value * get key:获取一个...

    redis的学习笔记 redis.pdf

    在本次学习笔记中,主要介绍了String类型的命令。String是最基本的类型,可以存储任何形式的数据,如二进制数据、数字或字符串。在String类型中,可以使用set命令设置值,使用get命令获取值,append命令用于追加字符...

    redis学习笔记

    ### Redis 学习笔记知识点概览 #### 一、Redis 简介及特性 - **Redis**(Remote Dictionary Server)是一种开源的、基于内存的数据结构存储系统,它支持多种数据结构,如字符串(strings)、散列(hashes)、列表...

    大数据技术学习笔记1

    大数据技术学习笔记1涵盖了大数据技术的基本概念、Hadoop 生态系统、MapReduce 算法、Spark 框架、分布式计算平台、NoSQL 数据库、数据处理、数据挖掘等多个方面,能够帮助读者更好地理解大数据技术的基本概念和应用...

    redis学习笔记Redis.md

    ### Redis 学习笔记知识点概览 #### 一、Redis 概述与应用场景 ##### 1.1 NoSQL 数据库简介 - **定义**: NoSQL(Not Only SQL)泛指非关系型数据库,它们通常不使用传统的表格关系来存储数据。 - **特性**: NoSQL ...

    MongDB学习笔记.docx

    MongoDB 是一种非关系型数据库管理系统,属于 NoSQL 数据库的一种,特别适合处理大量结构松散或半结构化的数据。它的设计目标是简化开发过程,提供高性能和高灵活性,尤其适用于构建互联网 Web 应用。MongoDB 使用的...

    Mongodb学习笔记.docx

    本文档是 MongoDB 学习笔记,涵盖了 NoSQL、Cache、运行平台等多个方面的知识点。 一、NoSQL 数据库 MongoDB MongoDB 是一个强大、灵活、可扩展性好的文档数据存储器,可以完成大部分关系数据库所具备的功能。它...

    大数据学习笔记

    大数据学习笔记 本资源摘要信息涵盖了大数据领域中的多个方面,包括Hadoop、HBase、Sqoop、Spark和Hive等技术栈。下面将对这些技术栈进行详细的解释和分析。 一、HDFS架构详尽分析 HDFS(Hadoop Distributed File...

    javaEE学习笔记

    本学习笔记涵盖了JavaEE的核心技术,帮助学习者深入理解和掌握javaweb的各项技能。 1. **Servlet与JSP** - **Servlet**:Servlet是Java编写的服务器端程序,主要用于扩展服务器的功能。在JavaEE中,Servlet处理...

    开发学习笔记供大家学习参考

    【开发学习笔记】是一份非常宝贵的资源,旨在帮助学习者深入理解和掌握IT开发领域的各种知识。这份笔记集合了作者在学习过程中的心得、体会以及实践经验,对于初学者和有一定经验的开发者来说,都是不可多得的参考...

    Redis数据库学习笔记

    Redis数据库学习笔记

    spark学习笔记

    本学习笔记集中介绍了Spark SQL在spark-shell中的操作方法,以及如何使用Spark进行数据清洗和转换成DataFrame的操作。 首先,Spark SQL是Spark用于处理结构化数据的一个组件,它提供了SQL接口,可以执行SQL查询。...

    MySQL学习笔记

    ### MySQL学习笔记知识点详解 #### 一、数据库概述 数据库是指按照特定的数据结构来组织、存储和管理数据的集合体。随着信息技术的进步和社会需求的增长,数据库已经从最初的简单存储发展成为用户所需的各种复杂...

    大数据技术原理学习笔记.docx

    本笔记基于林子雨老师在MOOC上的《大数据技术原理》课程,旨在为IT从业者和大学生提供一个全面了解大数据的基础框架。 首先,我们要认识到大数据的发展背景。随着互联网的普及,以及物联网、社交媒体、移动设备等...

Global site tag (gtag.js) - Google Analytics