原来基于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. linux 命令之comm

    1. 简介 comm命令可以用于两个文件之间的比较,它有一些选项可以用来调整输出,以便执行交集.求差.以及差集操作. 交集:打印出两个文件所共有的行. 求差:打印出指定文件所包含的且不相同的行. 差集 ...

  2. 在已有 Ubuntu 的基础上硬盘安装 Win7 实现双系统

    . . . . . LZ 的笔记本电脑一直安装的是 Ubuntu 系统,最近由于工作需要,要安装一个 Win7 系统.大家都知道,Linux 和 Windows 装双系统的时候要先装 Win 再装 L ...

  3. Android版本4.0~7.0

    Android 4.0 Ice Cream Sandwich(冰激凌三明治):2011年10月19日发布 版本主要更新如下:全新的UI:全新的Chrome Lite浏览器:截图功能:更强大的图片编辑功 ...

  4. 2016 CCPC 合肥赛区 平行四边形//打铁记录..... 背锅还是我在行 此处@ctr 233

    也希望自己记住这些题并不是真的很难很难... 平行四边形... 这个题要两个直线上的两个点和给出点中的两个点组成的平行四边形面积最大. 确定两个点后,发现线上的点随之确定.那么我们解出线上的点 然后求 ...

  5. HTML5离线篇收藏--- cache manifest

    自从翻译了<解读 HTML5:建议.技巧和技术>,就一直没有时间去看 HTML5 相关的东西.上周一次偶然的工作间隙折腾了下 Cache Manifest .当时直接拿博客当测试环境,虽然 ...

  6. 更新CocoaPods

    终端输入 : sudo gem install -n /usr/local/bin cocoapods –pre 更新了CocoaPods后,在原来的工程中执行了pod install命令后,报这样的 ...

  7. 使用spring配置quartz定时器

    quartz是石英钟的意思,所以用这个名字来做定时器的框架名称再适合不过.一年前做项目的时候有用过这个框架,当时没有整理,今天刚好新的商城系统也需要定时器.想要达到的效果是:每天的固定时间,比如凌晨3 ...

  8. redis cluster java client jedisCluster spring集成方法

    1.使用jedis的原生JedisCluster spring的applicationContext.xml配置redis的连接.连接池.jedisCluster Bean <bean id=& ...

  9. LSD-SLAM深入学习(3)-代码解析

    前言 在LSD-SLAM深入学习(2)中我们已经对算法进行分析,此处假设读者对于ros的基本操作都已经很熟悉,而且已经编写了一定量的的代码,我们直接上干货.此处分析的程序如下 main_live_od ...

  10. poj -- 1042 Gone Fishing(枚举+贪心)

    题意: John现有h个小时的空闲时间,他打算去钓鱼.钓鱼的地方共有n个湖,所有的湖沿着一条单向路顺序排列(John每在一个湖钓完鱼后,他只能走到下一个湖继续钓),John必须从1号湖开始钓起,但是他 ...