之前大四时候实习的公司有使用过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. 程序自动生成Dump文件

    前言:通过drwtsn32.NTSD.CDB等调试工具生成Dump文件, drwtsn32存在的缺点虽然NTSD.CDB可以完全解决,但并不是所有的操作系统中都安装了NTSD.CDB等调试工具.了解了 ...

  2. POJ3096Surprising Strings(map)

    题意:输入很多字符串,以星号结束.判断每个字符串是不是“Surprising Strings”,判断方法是:以“ZGBG”为例,“0-pairs”是ZG,GB,BG,这三个子串不相同,所以是“0-un ...

  3. linux top动态查看进程信息

    来源<鸟哥的linux私房菜> top:动态观察程序的变化 [root@linux ~]# top [-d] | top [-bnp] 参数: -d :后面可以接秒数,就是整个程序画面更新 ...

  4. codeforces #310 div1 C

    操作无论是U还是L,都会使原图形分裂成两个图形,且两个图形的操作互不影响 我们又发现由于操作点只可能在下斜线上,如果将操作按x排序 那么无论是U还是L,都会将操作序列完整分割成两半,且两个操作序列互不 ...

  5. HDU1875——畅通工程再续(最小生成树:Kruskal算法)

    畅通工程再续 Description相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖,发展首先要解决的问题当 ...

  6. linux的终端,网络虚拟终端,伪终端(转)

      blog.csdn.net/todd911/article/details/8025540 Linux上许多网络服务应用,如l2tp.pptp.telnet,都用到了伪终端.有朋友在问这方面的概念 ...

  7. 【原创】海量数据处理问题(一) ---- 外排,堆排,K查找的应用

    这篇博客源自对一个内存无法处理的词频统计问题的思考,最后给出的解决办法是自己想的,可以肯定这不是最好的解法.但是通过和同学的讨论,仍然感觉这是一个有意义及有意思的问题,所以和大家分享与探讨. 如果有误 ...

  8. 通过移动的Mas接口发送短信

    1. 首先,需要移动公司提供的用户名.密码.服务ID.接口Url等信息. 2. 将短信信息整理成XML格式的字符串,再转为byte数组,通过POST的方式,将短信发往Mas接口.需要引用"M ...

  9. UVa 753 (二分图最大匹配) A Plug for UNIX

    题意: 有n个插座,m个设备以及k种转化器(每种转化器视为有无限个). 转换器A->B可以将A类型的插头转化成B类型的插头,所以可以插在B类型的插座上. 求最少剩多少不匹配的设备. 分析: 抛开 ...

  10. [swustoj 183] 种树

    种树(0183) 问题描述 Aconly有一块矩形的地,因为这块地里有很多石头,耕作很不方便,所以他打算在这块地上种一些果树.这块地用一个只含‘#’和‘*’的N*M的矩阵来表示,‘#’表示泥土,‘*’ ...