zoukankan      html  css  js  c++  java
  • 这几天对Redis的初探,写一个阶段性的东西

    原来基于wcf写了一个交互框架,其中自定义了一个session队列,用于保存客户端连接的一些信息。

    这几天在想如何将这个wcf框架做负载均衡,于是将session队列拆分出来,用一个共享的内存进行处理,以前接触过一下memcached,后来发现Redis比memcached更有优势。于是开始着手研究Redis。(当然 Redis仅仅存储一个客户端session似乎大才小用,直接用一个ConcurrentDictionary不就能解决么?管他呢,先研究一下咯。)

    首先Redis是跨平台的,这里再废话一下,现在逐渐的开始转变,觉得只要效率高,错误小,windows和非windows又有什么关系?

    还是回到自己擅长的.net windows环境中来....:)

    首先安装Redis服务器,其实网上的介绍简单明了,我的目标很简单,跑起来就行,于是下载了一个Redis-x64-2.8.2400 windows版本的,解压后对redis.windows.conf文件进行配置,增加了maxheap 1024000000 最大堆的字节数

    然后运行:

    redis-server.exe  redis.windows.conf

    正常启动,简单易用。

    在通常的环境中,redis通常部署为守护进程。于是运行:

    redis-server --service-install redis.windows.conf --loglevel verbose
    就部署好了,可以通过windows服务中的启动停止来进行操作。
     
    然后需求客户端的连接,主要针对c#:
    看了两个,一个是ServiceStack,一个是StackExchange。前者网络上的支持文章较多,但是4.0以后商业化,连接有限制,好像一个小时6000次样,要么用3.0的版本,考虑过后,换成了StackExchange。
    引用部署StackExchange也很简单,在vs的tools中,在NuGet控制台,运行命令:
    PM> Install-Package StackExchange.Redis -Version 1.0.488
    (1.0.488打包好像有些问题,运行时不对,后来用的1.0.394这个版本)
    (卸载的话
    PM>UnInstall-Package StackExchange.Redis -Force)
    就OK了。
    初步试用比较简单
    static ConnectionMultiplexer redis = ConnectionMultiplexer.Connect();
    IDatabase redisdb = RedisEx.redis.GetDatabase();
    redisdb ....SetAdd...各种函数
    这里的redis需要用一个全局的静态变量,这样会避免连接数多时,连接/断开造成的频繁操作带来的不确定问题。
    最后再说一说Redis管理工具。
    用了一款redis-desktop-manager的,可以查看现有Redis服务中的数据,新增和删除。
     
    目前看来,以上Redis知识能让我用一阵了。如遇到什么问题,再进行补充。
    以下是各工具的下载地址:
    Redis: https://github.com/MSOpenTech/redis/releases
    StackExchange: 不用下载了vs直接进行Nuget安装
    https://www.nuget.org/packages/StackExchange.Redis/
    管理工具: https://github.com/uglide/RedisDesktopManager/releases
  • 相关阅读:
    thinkphp笔记:错误页面定制
    HDU 1263
    HDU 1106
    HDU 1209
    HDU 5479
    HDU 2094
    git clone from Gighub Fail
    Github*
    Debian ABC --- 1st time ---5
    Debian ABC --- 1st time ---4
  • 原文地址:https://www.cnblogs.com/poplau/p/5195157.html
Copyright © 2011-2022 走看看