zoukankan      html  css  js  c++  java
  • Redis的探究

    之前大四时候实习的公司有使用过Redis,不过那时所有配置均由主管完成了,而我也只是处于能使用的阶段。

    时隔1年多,近期回想起这货,在研究中,想把它整合进现在公司的网站系统中,做做数据快照(已完成)和数据缓存,现在把自己学习的一个过程写下来。

    首先声明,我用的是windows系统开发,所以以下所有的文字只和windows系统有关,其他系统的没研究过!

    Redis的简介,度娘一搜一大把,这里就不做阐述了。

    首先要先下载Redis,地址:https://code.google.com/p/servicestack/wiki/RedisWindowsDownload

    (至BZ写这篇随笔时,使用的最新版本为2.4.5,以下介绍均以此版本为基准)

    解压下载的Redis,选择对应的系统版本:

    其中:

    redis-server.exe:服务程序

    redis-check-dump.exe:本地数据库检查

    redis-check-aof.exe:更新日志检查

    redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询

    redis.conf:配置文件

    配置文件

    可另见配置文件说明中文版:http://my.oschina.net/liuxd/blog/61034

    打开服务端

    打开redis-server.exe,默认使用默认的配置,也可自己指定配置文件(打开cmd输入命令行):

    (以放在D盘Redis目录下为例,依次输入)

    d:

    cd redis

    redis-server xxx.conf(xxx.conf为配置文件名)

    打开命令行操作工具

    打开redis-cli,默认使用127.0.0.1:6379,同服务端一样也可自己指定:

    redis-cli -h 127.0.0.1 -p 6379(Host、Port可自己指定)

    redis命令可参考:http://redis.io/commands

    中文版:https://redis.readthedocs.org/en/latest/

    在系统中以服务的形式运行服务端(无需一直打开redis-server)

    到 https://github.com/kcherenkov/redis-windows-service 下载redis-windows-service,下载后,用visual studio打开并编译,在bin文件夹中找到生成的RedisService.exe文件,复制到同redis-server.exe同一个文件夹中。

    打开cmd,创建服务:

    sc create Redis start= auto DisplayName= Redis binpath= ""d: ools edis-2.4.5-win32-win6464bitRedisService.exe(RedisService.exe路径)" "d: ools edis-2.4.5-win32-win6464bit edis.conf(redis.conf路径)""

    创建成功后,每次开机均会自动启动,可在服务列表中自己设置

    RedisAdminUI

    asp.net版本的RedisUI,可实时查看Redis服务情况及数据情况。

    下载地址:https://code.google.com/p/servicestack/downloads/detail?name=RedisAdminUI.zip&can=2&q=

    部署到IIS,使用v2.0集成程序池

    .Net Redis

    项目中引用ServiceStack dll,可使用NuGet获取,亦可在网上自己下载。

    var rc = new RedisClient([Host], [Port]);

    然后只需要把Redis命令看得差不多了,这个也就会用了。我自己只用了里面几个最基本最常用的,其他一些复杂的,都是直接调用这几个方法:

    SetEntry、GetValue

    AddItemToList、AddRangeToList、GetAllItemsFromList、RemoveItemFromList

    AddItemToSet、AddRangeToSet、GetAllItemsFromSet、RemoveItemFromSet

    AddItemToSortedSet、GetAllItemsFromSortedSet、GetAllItemsFromSortedSetDesc、GetAllWithScoresFromSortedSet、RemoveItemFromSortedSet

    SetEntryInHash、SetRangeInHash、GetValueFromHash、GetValuesFromHash、GetAllEntriesFromHash、GetHashKeys、RemoveEntryFromHash

    Remove、Del

    目前我只实现了这几个,Get、Set方法基础参数类型均为string,我觉得就目前来说已经够用了(当然不排除以后会根据业务需要实现更多的方法)。

    至于值的问题,有些列表我们是将Entity Model序列化为Json字符串进行保存的,Get的时候再将字符串反序列化成Entity Model。

    Python Redis

    我使用的是redis-py,当然网上也有其他的,都说了各自的好处什么的,自己选择。

    到 https://github.com/andymccurdy/redis-py 下载后,安装(我安装的是Python3.3,没安装的童鞋先行安装,选择自己需要的版本)

    Python脚本我们是用来做数据的初始化的,功能也简单:

    复制代码
    import redis
    
    REDIS_HOST = '127.0.0.1'
    REDIS_PORT = 6379
    
    class connection_model:
        'Get Data Base Connection Model'
    
        @staticmethod
        def get_redis_connection():
            'Get The Redis Connection'
    
            return redis.StrictRedis(host = REDIS_HOST, port = REDIS_PORT)
    复制代码

    获取Connection后,就可以进行各种操作了(我只是试过几个基础的方法,其他方法后面有时间再慢慢研究):

    set、get、mset、mget

    lpush、lrange

    sadd、smembers

    hset、hget、hmset、hmget、hgetall

    (带"m"的都是多个/多组 get、set 的)

    写到这了,休息一下继续下午上班了。

     
     
    分类: redis
    标签: redis
  • 相关阅读:
    用弦截法求解方程的根
    Fibonacci_array
    爱你所爱,行你所行
    Visual Studio安装Visual Assist的办法(兼容VS2010至VS2017)
    对集合类型属性的实体类的查询集的封装
    简单购物选择案例--纯js代码
    静态json数据表格渲染展示
    js之全选,反选,全不选案例
    常见IO流简介
    JDBC一般流程
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3305714.html
Copyright © 2011-2022 走看看