当前位置:  数据库>nosql
本页文章导读:
    ▪初识Redis及Redis在Windows下的安装和使用                                                                             &.........
    ▪MongoDB 开发学习      如果你从来没有接触MongoDB或对MongoDB有一点了解,如果你是C#开发人员,那么你不妨花几分钟看看本文。本文将一步一步带您轻松入门。 阅读目录一:简介二:特点三:下载安装和开启服务器.........
    ▪Redis.conf      # Redis configuration file example# Redis 2.6.13# Note on units: when memory size is needed, it is possible to specify# it in the usual form of 1k 5GB 4M and so forth:## 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*.........

[1]初识Redis及Redis在Windows下的安装和使用
    来源:    发布时间: 2013-10-18

                                                                              NoSQL简介

      介绍redis前,我想还是先认识下NoSQL,即not only sql, 是一种非关系型的数据存储,key/value键值对存储。现有Nosql DB 产品: Redis/MongoDB/Memcached/Hbase/Cassandra/ Tokyo Cabinet/Voldemort/Dynomite/Riak/ CouchDB/Hypertable/Flare/Tin/Lightcloud/ KiokuDB/Scalaris/Kai/ThruDB, 等等~~~

为什么需要NoSQL非关系型数据库?

  • High performance - 对数据库高并发读写的需求
  • Huge Storage - 对海量数据的高效率存储和访问的需求
  • High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求

                                                                                               Redis简介

  已经有了Membercache和各种数据库,Redis为什么会产生?Redis纯粹为应用而产生,它是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,解决了断电后数据完全丢失的情况;在部分场合可以对关系数据库起到很好的补充作用。性能测试结果表示SET操作每秒钟可达110000次,GET操作每秒81000次(当然不同的服务器配置性能不同)。

  Redis是一种面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。 这些数据类型支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的,支持各种不同方式的排序。redis 与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改 操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

redis目前提供四种数据类型:string,list,set及zset(sorted set)。

Redis的存储分为内存存储、磁盘存储和log文件三部分,配置文件中有三个参数对其进行配置。

  • save seconds updates :指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。
  • appendonly yes/no :是否在每次更新操作后进行日志记录。如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据 文件是按上面的save条件来同步的,所以有的数据会在一段时间内只存在于内存中。
  • appendfsync no/always/everysec :数据缓存同步至磁盘的方式。no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次。
  •                                                                Windows下Redis的安装及使用

      先在网上下载redis,我下载的是redis-2.0.2,我解压到了和安装python相同的目录下,进入redis-2.0.2,下面有这几个文件:

       redis-server.exe       redis服务器的daemon启动程序
       redis.conf                redis配置文件
       redis-cli.exe             redis命令行操作工具。当然,也可以用telnet根据其纯文本协议来操作
       redis-check-dump.exe         本地数据库检查
       redis-check-aof.exe             更新日志检查
       redis-benchmark.exe       性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache的 ab 工具)

    benchmark工具测试信息:

    向redis服务器发送10万个请求,每个请求附带60个并发客户端

    哎呀,我的电脑有点吃不消了,不过最终还是显示出了4.03秒完成了10万个请求的测试,

    部分结果截图如下:

    启动Redis服务(conf文件制定配置文件(redis-server.exe  redis.conf ),若不指定则默认):

     

    启动cmd窗口要一直开着,关闭后则Redis服务关闭。

    这时服务开启着,另外开一个cmd窗口进行,设置客户端:

    C:\redis-2.0.2>redis-cli.exe -h 127.0.0.1 -p 6379

    然后我们就可以在这里输入我们想要输入的命令,redis很重要的一个操作就是set和get

    客户端如下:

    此时服务器端(这里也是本机)显示如下(有一个客户端连接了):

    上述在客户端设置的key是常驻内存的,就是关闭窗口,下次开窗口get  key的值还是“jzhou”,呵呵。

    (注意操作时,服务器端一定要开启服务,否则客户端连不上。)

    Redis提供了多种语言的客户端,包括Java,C++,python。在python使用时,import redis就OK了。

    本文链接


        
    [2]MongoDB 开发学习
        来源:    发布时间: 2013-10-18

    如果你从来没有接触MongoDB或对MongoDB有一点了解,如果你是C#开发人员,那么你不妨花几分钟看看本文。本文将一步一步带您轻松入门。


     


    阅读目录


    一:简介


    二:特点


    三:下载安装和开启服务器


    四:使用mongo.exe 执行数据库增删改查操作


    五:更多命令


    六:MongoDB语法与现有关系型数据库SQL语法比较


    七:可视化的客户端管理工具MongoVUE


    八:在C#中使用官方驱动操作MongoDB


    九,在C#中使用samus驱动操作MongoDB


    十:写个批处理,方便开启Mongodb服务器


     


    一,简介

       MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。


       MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。


         MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。


        传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。


     


    二,特点

      它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:


      1)面向集合存储,易存储对象类型的数据。


      2)模式自由。


      3)支持动态查询。


      4)支持完全索引,包含内部对象。


      5)支持查询。


      6)支持复制和故障恢复。


      7)使用高效的二进制数据存储,包括大型对象(如视频等)。


      8)自动处理碎片,以支持云计算层次的扩展性。


      9)支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。


      10)文件存储格式为BSON(一种JSON的扩展)。


      11)可通过网络访问。


     


    三,下载安装和开启服务器

    3.1)MongoDB 当前版本是2.0.4,下载地址:http://www.mongodb.org/downloads。提供了各种平台的版本。我这里选择的是Windows平台下的。


    3.2)新建目录E:\ mongodb , 将下载的压缩包解压到此目录。bin文件夹下有一堆.exe 文件



    其中有两个最重要的文件:Mongod.exe和Mongo.exe 。


    Mongod.exe 是用来连接到mongo数据库服务器的,即服务器端。


    Mongo.exe 是用来启动MongoDB shell的,即客户端。


    其他文件:


    mongodump 逻辑备份工具。


    mongorestore 逻辑恢复工具。


    mongoexport  数据导出工具。


    mongoimport  数据导入工具。


    3.3)开启服务器


     第一步:新建一个目录用来存放MongoDB的数据库文件,即dbpath。随便建在那都可以,我这里建在 E:\MongoDBFiles 。 这是为了下一步使用的。


     第二步:打开CMD窗口,键入如下命令




    > e:



    > cd e:\mongodb\mongodb-win32-i386-2.0.4\bin



    > mongod.exe -dbpath "E:\mongodbfiles"



    最后一行命令中的-dbpath 参数值就是我们第一步新建的文件夹。这个文件夹一定要在开启服务之前事先建立好,否则会报错,mongodb不会自己创建。


    如果操作成功会出现如下界面:



    该界面该我们展示了一些信息:如进程ID是2988,端口号是27017。


    打开浏览器输入:http://127.0.0.1:27017/


    我们看到了这样的提示:


    “You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number”


    到此,MongoDB数据库服务已经成功启动了。


     


    四,使用mongo.exe 执行数据库增删改查操作

    mongodb 为我们提供的客户端管理工具是mongo.exe


    4.1)创建数据库:


     双击打开mongo.exe 出现如下界面:



     


    该界面的意思是,当前连接的数据库是test,这是系统默认将要创建的。为什么说是“将要创建的”呢?因为此时并不存在此数据库,或者说它现在还只在内存中,并没有创建在物理磁盘上。不信,你看MongoDBFiles文件夹下面除了mongod.lock外,什么都没有。只有当你执行了插入数据的命令后,该数据库才会真正的创建。


     


    好了,我们暂时不管这个test了。现在我们来创建一个叫cnblogs 的数据库。


    在shell 命令窗口键入如下命令:



    > use cnblogs // use 命令用来切换当前数据库,如果该数据库不存在,则会先新建一个。



     4.2)创建collection并插入数据


     在传统关系型数据库中,创建完了库后接下来会创建表,但是在mongoDB中没有“表”的概念,与其对应的一个概念是集合,即collection。


     在shell 命令窗口键入如下命令:



    > db.users.insert({'name':'xumingxiang','sex':'man'})

    // 这条命令是向users 集合中插入一条数据。如果集合users不存在,则会先新建一个,然后再插入数据,参数以JSON格式传入。


     因为我们后面要测试删除数据,所以我们再插入一条数据:



     > db.users.insert({'name':xiangshu','sex':'man'})


    4.3)在上面4.1)和4.2)我们创建了数据库,创建了集合,还插入了两条数据,那么这些操作有没有执行成功呢?我们来查询一下:


    在shell 命令窗口键入如下命令:




    > show dbs // 显示所有数据库



    >show collections // 显示当前数据库
        
    [3]Redis.conf
        来源:    发布时间: 2013-10-18

    # Redis configuration file example

    # Redis 2.6.13

    # Note on units: when memory size is needed, it is possible to specify

    # it in the usual form of 1k 5GB 4M and so forth:

    #

    # 1k => 1000 bytes

    # 1kb => 1024 bytes

    # 1m => 1000000 bytes

    # 1mb => 1024*1024 bytes

    # 1g => 1000000000 bytes

    # 1gb => 1024*1024*1024 bytes

    #

    # units are case insensitive so 1GB 1Gb 1gB are all the same.

     

    # By default Redis does not run as a daemon. Use 'yes' if you need it.

    # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.

    daemonize yes

     

    # When running daemonized, Redis writes a pid file in /var/run/redis.pid by

    # default. You can specify a custom pid file location here.

    pidfile /var/run/redis.pid

     

    # Accept connections on the specified port, default is 6379.

    # If port 0 is specified Redis will not listen on a TCP socket.

    port 6379

     

    # If you want you can bind a single interface, if the bind option is not

    # specified all the interfaces will listen for incoming connections.

    #

    # bind 127.0.0.1

     

    # Specify the path for the unix socket that will be used to listen for

    # incoming connections. There is no default, so Redis will not listen

    # on a unix socket when not specified.

    #

    # unixsocket /tmp/redis.sock

    # unixsocketperm 755

     

    # Close the connection after a client is idle for N seconds (0 to disable)

    timeout 0

     

    # TCP keepalive.

    #

    # If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence

    # of communication. This is useful for two reasons:

    #

    # 1) Detect dead peers.

    # 2) Take the connection alive from the point of view of network

    # equipment in the middle.

    #

    # On Linux, the specified value (in seconds) is the period used to send ACKs.

    # Note that to close the connection the double of the time is needed.

    # On other kernels the period depends on the kernel configuration.

    #

    # A reasonable value for this option is 60 seconds.

    tcp-keepalive 0

     

    # Specify the server verbosity level.

    # This can be one of:

    # debug (a lot of information, useful for development/testing)

    # verbose (many rarely useful info, but not a mess like the debug level)

    # notice (moderately verbose, what you want in production probably)

    # warning (only very important / critical messages are logged)

    loglevel notice

     

    # Specify the log file name. Also 'stdout' can be used to force

    # Redis to log on the standard output. Note that if you use standard

    # output for logging but daemonize, logs will be sent to /dev/null

    logfile /data/redis/logs/redis.log

     

    # To enable logging to the system logger, just set 'syslog-enabled' to yes,

    # and optionally update the other syslog parameters to suit your needs.

    # syslog-enabled no

     

    # Specify the syslog identity.

    # syslog-ident redis

     

    # Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.

    # syslog-facility local0

     

    # Set the number of databases. The default database is DB 0, you can select

    # a different one on a per-connection basis using SELECT <dbid> where

    # dbid is a number between 0 and 'databases'-1

    databases 16

     

    ################################ SNAPSHOTTING #################################

    #

    # Save the DB on disk:

    #

    # save <seconds> <changes>

    #

    # Will save the DB if both the given number of seconds and the given

    # number of write operations against the DB occurred.

    #

    # In the example below the behaviour will be to save:

    # after 900 sec (15 min) if at least 1 key changed

    # after 300 sec (5 min) if at least 10 keys changed

    # after 60 sec if at least 10000 keys changed

    #

    # Note: you can disable saving at all commenting all the "save" lines.

    #

    # It is also possible to remove all the previously configured save

    # points by adding a save directive with a single empty string argument

    # like in the following example:

    #

    # save ""

     

    save 900 1

    save 300 10

    save 60 10000

     

    # By default Redis will stop accepting writes if RDB snapshots are enabled

    # (at least one save point) and the latest background save failed.

    # This will make the user aware (in an hard way) that data is not persisting

    # on disk properly, otherwise chances are that no one will notice and some

    # distater will happen.

    #

    # If the background saving process will start working again Redis will

    # automatically allow writes again.

    #

    # However if you have setup your proper monitoring of the Redis server

    # and persistence, you may want to disable this feature so that Redis will

    # continue to work as usually even if there are problems with disk,

    # permissions, and so forth.


        
    最新技术文章:
    ▪30G 的redis 如何优化 - 沐訫    ▪[教程]MongoDB 从入门到进阶 (User系统) - magicD...    ▪Redis使用总结之与Memcached异同 - ceecy
    ▪MongoDB学习 (六):查询 - 辞职回家卖烧饼    ▪在.net中使用aquiles访问Cassandra(一) - amwicfai    ▪在.net中使用aquiles访问Cassandra(二) - amwicfai
    ▪高性能队列Fqueue的设计和使用实践 - 蒋叶湖    ▪MongoDB开发学习 - 喵 喵    ▪MongoDB开发学习 - 喵 喵
    ▪Spring-MongoDB简单操作 - CN.programmer.Luxh    ▪MongoDB 聚合 - 蒋叶湖    ▪nosql数据库 - 蒋叶湖
    ▪Spring-MongoDB简单操作    ▪Redis源码研究--字典    ▪Redis源码研究--字典 - feiyunruyue
    ▪[译]Cassandra 架构简述    ▪[译]Cassandra 架构简述    ▪Spring-MongoDB简单操作
    ▪MongoDB 聚合    ▪NoSQL生态系统    ▪NoSQL生态系统
    ▪nosql数据库    ▪mongodb持久化    ▪MongoDB 聚合
    ▪CentOS 6上的redis搭建实战记录    ▪非关系型数据库的研究与实践    ▪高性能队列Fqueue的设计和使用实践
    ▪php中使用memcached的性能问题    ▪NoSQL架构实践(二)——以NoSQL为主    ▪NoSQL架构实践(三)——以NoSQL为缓存
    ▪在MongoDB中一起使用$or和sort()时,查询性能差...    ▪[转]NoSQL生态系统    ▪NoSQL数据库探讨之一 - 为什么要用非关系数...
    ▪初识Redis及Redis在Windows下的安装和使用    ▪MongoDB 开发学习    ▪Redis.conf
    ▪关于twemproxy和redis分布式    ▪NoSQL学习之路(四):创建、读取、更新、删除...    ▪NoSQL学习之路 (五):查询操作符(Query Operators).1st...
    ▪NoSQL学习之路(三):MongoDB Shell的使用    ▪NoSQL学习之路 (二):MongoDB 数据类型和基本...    ▪NoSQL学习之路 (一):MongoDB 环境的搭建
    ▪NoSQL学习之路 (一):mongoDB 环境的搭建    ▪NoSQL学习之路 (一):mongoDB 环境的搭建和shel...    ▪NoSQL学习之路 (二):mongoDB 数据类型和基本...
    ▪那点所谓的分布式——redis    ▪mongodb查询嵌入式文档    ▪NoSQL历史简介
    ▪Mongo服务器集群配置学习三——分片    ▪MongoDB 导出和导入命令的使用    ▪HBase常用的数据库API操作
    ▪启动HBase后遇到的一个问题    ▪Mongo服务器集群配置学习一——主从复制    ▪Mongo服务器集群配置学习二——副本集
    ▪完全分布式安装HBase    ▪搞一些好玩的东西——redis    ▪Tair监控及统计技巧
    ▪MongoDB 之旅(四) 深入学习    ▪MongoDB 问题123    ▪MongoDB——安装部署以及简单的运用
    ▪MongoDB 之旅(一) 简介    ▪MongoDB 之旅(二) 基本操作(MongoDB Javascript Sh...    ▪MongoDB 之旅(三) 基本管理(MongoDB Javascript Sh...
    ▪mongoDB之windows下安装mongo数据库服务    ▪mongoDB之数据备份恢复工具    ▪CentOS通过yum安装CouchDB
    ▪NoSQL学习之路(三):MongoDB Shell的使用    ▪NoSQL学习之路 (二):MongoDB 数据类型和基本...    ▪NoSQL学习之路 (一):MongoDB 环境的搭建 iis7站长之家
    ▪mongodb数据文件格式    ▪在Window平台安装MongoDB    ▪mongodb journal文件格式
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3