之前大四时候实习的公司有使用过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:\tools\redis-2.4.5-win32-win64\64bit\RedisService.exe(RedisService.exe路径)\" \"d:\tools\redis-2.4.5-win32-win64\64bit\redis.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的探究的更多相关文章

  1. Celery + Redis 的探究

    Celery + Redis 的探究 文本尝试研究,使用 redis 作为 celery 的 broker 时,celery 的交互操作同 redis 中数据记录的关联关系. 不在乎过程的,可以直接看 ...

  2. redis持久化探究

    redis支持两种持久化方式,一种是RDB方式,另一种是AOF方式.redis3.0windows版本默认关闭AOF(appendonly no),而开启RDB,当达到一定条件时,redis就会将内存 ...

  3. Redis分区探究

    Redis比较好的分区算法是采用Hash分区算法 也就是我们可以将所有的server例如:user1,user2,user3.通过hash函数将key转化为一个数字然后求余找到需要存储的server. ...

  4. nodejs + socket.io + redis 新手上路

    最近要更新网站架构了,决定转入 nodejs + socket.io + redis 方式. 战斗刚开始: 网上的文章太松散,我根据各个网友的分享进行整理 ,让大家可以方便上手. 进入node.js之 ...

  5. celery 原理

    https://mp.weixin.qq.com/s/FzvZHQpF5mhV9t_HBzlcwg Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处 ...

  6. Windows版本redis高可用方案探究

    目录 Windows版本redis高可用方案探究 前言 搭建redis主从 配置主redis-28380 配置从redis-23381 配置从redis-23382 将redis部署为服务 启动red ...

  7. 用BIO手写实现Redis客户端的探究(拒绝Jedis)

    在Redis的使用过程中,大多数人都是使用现成的客户端,如Jedis,Redisson,Lettuce.因此本文研究用BIO的方式手写Redis客户端尝试,对遇到的问题进行探究及总结. Redis通讯 ...

  8. 实践篇 -- Redis客户端缓存在SpringBoot应用的探究

    本文探究Redis最新特性--客户端缓存在SpringBoot上的应用实战. Redis Tracking Redis客户端缓存机制基于Redis Tracking机制实现的.我们先了解一下Redis ...

  9. 探究 Redis 4 的 stream 类型

    redis 2 10 月初,Redis 搞了个大新闻.别紧张,是个好消息:Redis 引入了名为 stream 的新数据类型和对应的命令,大概会在年底正式发布到 4.x 版本中.像引入新数据类型这样的 ...

随机推荐

  1. DIY Ruby CPU 分析 Part II

    [编者按]作者 Emil Soman,Rubyist,除此之外竟然同时也是艺术家,吉他手,Garden City RubyConf 组织者.本文是 DIY Ruby CPU Profiling 的第二 ...

  2. Maven SDK

    Maven SDK  Details Print   Tags: development maven maven2 liferay v6.0 Table of Contents [-] Introdu ...

  3. JAVA面试题:69道Spring面试题和答案

    目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spri ...

  4. Tornado,表单处理,一样在行

    哟,处理流程还算自然... import os.path import random import tornado.httpserver import tornado.ioloop import to ...

  5. Linux---More命令 初级实现

    Linux: more已实现:more filename , quit不需要回车未实现:command | more 重定向 ,显示百分比 Waiting... /* Linux: more 已实现: ...

  6. POJ3034+DP

    题意:给定一个N*N的矩阵, 然后在这个矩阵的每个格子在任意时间会出现一个鼹鼠,这个出现     出现鼹鼠的时间是输出信息所确定的. 现在你手里有一把锤子能够去锤这些鼹鼠. 你能     够移动锤子, ...

  7. atomikos的Jta配置

    配置说明见: http://www.atomikos.com/Documentation/JtaProperties atomikos的一些配置,文档中说明的比较清楚,有两个属性配置不太明确:com. ...

  8. mongoDB入门必读

    一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目. 由C++语言编写,旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品. ...

  9. C#中保留2位小数

    public static void Method() { double a = 1.991; a = Math.Round(a); Console.WriteLine("a = {0}&q ...

  10. 在QuickReport中实现多栏打印

      如果在Treport的DataSet属性中选定一个Table,那么QuickReport每次打印详细列表(BandType=rbDetail)属性的TQRBand时,系统会自动取出一个记录供打印, ...