zoukankan      html  css  js  c++  java
  • 初识Redis及Redis在Windows下的安装和使用

    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文件三部分,配置文件中有三个参数对其进行配置。

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

    Windows下Redis的安装及使用

      先在网上下载redis,我下载的是redis-2.0.2(http://download.csdn.net/download/linyu19872008/4179367),我解压到了和安装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操作redis

      若要用python操作redis,则需下载一个redis的python开发包redis-py(这个网上有https://github.com/andymccurdy/redis-py)下载下来后我将它放在了python的安装目录下,进入redis-py目录,执行setup.py(需要下载setuptools,然后执行python setup.py install 就OK了)

    几秒钟就安装好了,进入python环境,呵呵,随便做点啥,以表明redis导入成功了:

    我退出了cmd,想直接在python的IDE中来import  redis,但是导入失败了,提示不存在此模块,我想了想,哦,我应该将redis-py这个路径加入系统环境变量,这样python就能识别了,果真如此,我将"C:\Python27\redis-py",加入了系统path,再次在python自带的IDE中操作redis成功了,这样就不用每次在cmd那黑框框中输入了。

    初识redis第一课,如有错误,敬请指出。

  • 相关阅读:
    安全编码1
    VPP tips
    VPP概述汇总
    C语言安全编码摘录
    TCP-proxy
    Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.4. Matplotlib: plotting
    Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.3. NumPy: creating and manipulating numerical data
    Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.2. The Python language
    Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.1. Python scientific computing ecosystem
    25马5跑道,求最快的五匹马的需要比赛的次数
  • 原文地址:https://www.cnblogs.com/zhoujie/p/redis1.html
Copyright © 2011-2022 走看看