现在越来越多的开发者使用service-stack.redis 来进行redis的访问,但是获取redisclient的方式有多种方式,其中有一种从缓冲池获取client的方式很是得到大家的认可. List<string> listWrite = new List<string>() { "6380@192.168.8.245:6380" }; List<string> readHosts = new List<string>() { &…
pub相对简单 client.PublishMessage("channel", "msg");   sub有2种方法 方法1 var subscription = client.CreateSubscription(); subscription.OnMessage = (channel, msg) => { Console.WriteLine(String.Format("Received '{0}' from channel '{1}'&quo…
原文:Redis进阶实践之十八 使用管道模式提高Redis查询的速度 一.引言             学习redis 也有一段时间了,该接触的也差不多了.后来有一天,以为同事问我,如何向redis中批量的增加数据,肯定是大批量的,为了这主题,我从新找起了解决方案.目前的解决方案大都是从官网上查找和翻译的,每个实例也都调试了,正确无误.把结果告诉我同事的时候,我也跟清楚这个主题如何操作了,里面的细节也更清楚了.大然也有人说可以通过脚本来做这个操作,没错,但是我对脚本语言还没有研究很透,就不来班门…
Govern Service 基于 Redis 的服务治理平台(服务注册/发现 & 配置中心) Govern Service 是一个轻量级.低成本的服务注册.服务发现. 配置服务 SDK,通过使用现有基础设施中的 Redis (相信你已经部署了Redis),不用给运维部署带来额外的成本与负担. 借助于 Redis 的高性能, Govern Service 提供了超高TPS&QPS (10W+/s JMH 基准测试).Govern Service 结合本地进程缓存策略 + Redis Pub…
查询速度慢的原因很多,常见如下几种:  1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应.  3.没有创建计算列导致查询不优化.  4.内存不足  5.网络速度慢  6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)  7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列  10.查询语句不好,没有优化可以通过如下方法…
一.Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快: 2.redis是单线程的,省去了很多上下文切换线程的时间:   3.redis使用多路复用技术,可以处理并发的连接.非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架.epoll中的读.写.关闭.连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间. 二.为什么Redis是单线程的 1.官方答案 因为Redis是基于内存的操作,CPU不是Redis的瓶颈,R…
Oracle查询速度慢的原因总结 查询速度慢的原因很多,常见如下几种:1,没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2,I/O吞吐量小,形成了瓶颈效应.3,没有创建计算列导致查询不优化.4,内存不足5,网络速度慢6,查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)7,锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)8,sp_lock,sp_who,活动的用户查看,原因是读写竞争资源.9,返回了不必要的行和列10,查询语句不好,没有优化可以通过如下方法…
SQL查询速度慢的原因分析和解决方案 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,…
ServiceStack.Redis 是一个C#访问Redis的客户端,可以说可以通过它实现所有需要Redis-Cli的功能.但是今天我在主Redis 实例设置了访问密码,而在slave 上没有设置,我通过一个缓存工厂来获取连接.在redisClient实例化可以直接设置密码. /// <summary> /// 缓存客户端管理器工厂 /// </summary> public class PoolManagerFactory { private static PooledRedi…
1.redis是存储在内存上的,读写的话不会受到硬盘 I/O 速度的限制 如图: (1).硬盘数据库的工作模式: (2).内存数据库的工作模式 2.数据结构简单,对数据操作也简单 3.多路IO复用模型,非阻塞IO     解释:多路:多网络连接   复用:复用同一个线程 4. 采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗: 5.使用底层模型不同,它们之间底层实现…