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

    tesseract-ocr 第一课 前言 据网上介绍tesseract-ocr性能不错,并且可以支持识别中文了.于是尝试一下.   安装 1.下载地址: https://code.google.com ...

  2. LDAP与jenkins

    1:下载:jenkins.war 2:运行:java -jar jenkins.war  一直让他开着,后者放到后台进程 3:在浏览器输入http://IP:8080   4:设置LDAP     若 ...

  3. hdu 1398 Square Coins (母函数)

    Square Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  4. Jquery给动态生成的对象绑定事件

    $(document).on("blur", ".Text1", function () { var index = this.id.replace('txtS ...

  5. Android调试小技巧(LogCat不输出、Log自动清空、install时timeout)

    问题:有时候明明连接了设备,而LogCat却没有输出 解决方法:在device界面点一下对应设备,使其处于选中状态(它适用于查看手机文件不显示的情况) 问题:前面记录的Log看着看着突然被清空了 解决 ...

  6. java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

    在ViewPager中,用Fragment显示页面时,报错: java.lang.IllegalStateException: The specified child already has a pa ...

  7. c语言冒泡排序

    在C语言中,常用的排序算法有:冒泡排序.快速排序.插入排序.选择排序.希尔排序.堆排序以及归并排序等等. 冒泡排序基本概念:  依次比较相邻的两个数,将小数放在前面,大数放在后面. #include ...

  8. 【转】如何理解c和c++的复杂类型声明

    转自:http://blog.chinaunix.net/space.php?uid=22889411&do=blog&id=59667 曾经碰到过让你迷惑不解.类似于int * (* ...

  9. 有向图强连通分量的Tarjan算法

    有向图强连通分量的Tarjan算法 [有向图强连通分量] 在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected).如果有向图G的每两个顶点都强连通,称G ...

  10. ubuntu下安装wordpress

    网上大多都是说放在var/www下面 实际上新版的ubuntu默认放在 var/www/html 下面 当然这个配置是可以修改的