原来基于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

这几天对Redis的初探,写一个阶段性的东西的更多相关文章

  1. 用C写一个web服务器(四) CGI协议

    * { margin: 0; padding: 0 } body { font: 13.34px helvetica, arial, freesans, clean, sans-serif; colo ...

  2. python_way ,day11 线程,怎么写一个多线程?,队列,生产者消费者模型,线程锁,缓存(memcache,redis)

    python11 1.多线程原理 2.怎么写一个多线程? 3.队列 4.生产者消费者模型 5.线程锁 6.缓存 memcache redis 多线程原理 def f1(arg) print(arg) ...

  3. 【原创】自己动手写一个能操作redis的客户端

    引言 redis大家在项目中经常会使用到.官网也提供了多语言的客户端供大家操作redis,如下图所示 但是,大家有思考过,这些语言操作redis背后的原理么?其实,某些大神会说 只要按照redis的协 ...

  4. 解决 Redis 只读不可写的问题

    本文转载:https://blog.csdn.net/han_cui/article/details/54767208?tdsourcetag=s_pcqq_aiomsg 解决 Redis 只读不可写 ...

  5. 用.netcore写一个简单redis驱动,调试windows版本的redis.平且给set和get命令添加参数.

    1. 下载windows版本的redis 2.开发环境vs2017  新建一个 .net core控制台. private static Socket socket = new Socket(Addr ...

  6. 学习T-io框架,从写一个Redis客户端开始

    前言   了解T-io框架有些日子了,并且还将它应用于实战,例如 tio-websocket-server,tio-http-server等.但是由于上述两个server已经封装好,直接应用就可以.所 ...

  7. 搞定redis面试--Redis的过期策略?手写一个LRU?

    1 面试题 Redis的过期策略都有哪些?内存淘汰机制都有哪些?手写一下LRU代码实现? 2 考点分析 1)我往redis里写的数据怎么没了? 我们生产环境的redis怎么经常会丢掉一些数据?写进去了 ...

  8. 用 C# 写一个 Redis 数据同步小工具

    用 C# 写一个 Redis 数据同步小工具 Intro 为了实现 redis 的数据迁移而写的一个小工具,将一个实例中的 redis 数据同步到另外一个实例中.(原本打算找一个已有的工具去做,找了一 ...

  9. 【redis前传】自己手写一个LRU策略 | redis淘汰策略

    title: 自己手写一个LRU策略 date: 2021-06-18 12:00:30 tags: - [redis] - [lru] categories: - [redis] permalink ...

随机推荐

  1. C#获取本机公网IP

    /// <summary> /// 获取本机公网IP /// </summary> /// <returns></returns> public sta ...

  2. uvm - dut

    module dut(clk, rst_n, rxd, rx_dv, txd, tx_en); input clk; input rst_n; :] rxd; input rx_dv; :] txd; ...

  3. sql 标准见表语句

    建一张表 /******************************************************************************** 小区主档记录,要保证与Or ...

  4. Eclipse里面的一些常规设置

    一.Eclipse里面的默认编码是GBK,但是Android开发的编码都是UTF-8,所以一定要修改自己的工程的编码,不要坑队友哦~ (1)选中当前的工程,点击右键,如图选择(这只是改变当前工程的编码 ...

  5. Bootstrap Table Examples

    The examples of bootstrap table http://bootstrap-table.wenzhixin.net.cn/examples/ http://www.jq22.co ...

  6. poj 1236 Network of Schools(连通图)

    题目链接:http://poj.org/problem?id=1236 题目大意:有一些学校,学校之间可以进行收发邮件,给出学校的相互关系,问:1.至少 要向这些学校发送多少份才能使所有的学校都能获得 ...

  7. 延迟对象$q和供应商配置config

    1.angular总的$q和jquery中的延迟对象很类似,用法也差不多 m1.controller('meng',['$scope','$q',function($scope,$q){ var df ...

  8. Codeforces 731C. Socks 联通块

    C. Socks time limit per test: 2 seconds memory limit per test: 256 megabytes input: standard input o ...

  9. windows 8.1 下蓝屏报错:SYSTEM_SERVICE_EXCEPTION(NETIO.SYS)的解决办法

         大概2周前,电脑突然蓝屏了,我上网查了一下解决办法,因为大部分内容是英文的,所以我只大概看了下,看到这个问题好像是由于软件冲突造成的,于是就把小红伞去掉了,而那天电脑也真的没有再蓝屏(之前大 ...

  10. 使用Fiddler针对Android手机网络请求抓包

    本文转载自大牛Trinea的博文:Android利用Fiddler进行网络数据抓包 主要介绍Android及IPhone手机上如何利用Fiddler进行网络数据抓包,比如我们想抓某个应用(微博.微信. ...