基于ServiceStack.Redis上对REDIS访问的再次封装

  1. 概述

RedisOpLib.dll 是基于ServiceStack.Redis上对Redis操作的再一次封装,引用此类之后对REDIS操作变的很简单

  2.组成

    a. RedisOpLib.dll 封装的主文件

    b. Redis.config   默认的配置文件,还可以随意增加如 RedisA.config,RedisB.config,此配置文件结构如下:

<configuration>
  <AutoStart>YES</AutoStart>
  <IdleTimeOutSecs>0</IdleTimeOutSecs>
  <MaxReadPoolSize>1000</MaxReadPoolSize>
  <MaxWritePoolSize>1000</MaxWritePoolSize>
  <PoolTimeout>0</PoolTimeout>

<!--读取地址,多个地址使用逗号(,)分开 -->
  <ReadonlyHost>192.168.2.238:6380</ReadonlyHost>

<!--读写地址,多个地址使用逗号(,)分开 -->

<ReadWriteHost>192.168.2.238:6380</ReadWriteHost>
  <SocketReceiveTimeout>0</SocketReceiveTimeout>
  <SocketSendTimeout>0</SocketSendTimeout>

<!-- 对于方法ToOptimizedResultUsingCache,是否启用Redis缓区(不重要,可以在程序中手工指定) -->
  <OptimizedResultUsingCache>True</OptimizedResultUsingCache>

<!-- 是否缓冲为String.Empty或null的缓存项 -->
  <OptimizedResultUsingCacheIncludeNullObject>False</OptimizedResultUsingCacheIncludeNullObject>
  <RedisMode>POOL</RedisMode>
  <CacheKeys>
    <Key Name="RegionList" Value="2:0:0" /> <!--缓存类型为RegionList的的缓区项的有效时间为2小时 -->
  </CacheKeys>
</configuration>

RedisMode的定义如下:

/// <summary>
    /// BALANCE,FAILOVER只能使用ReadWriteHost地址
    /// 默认为POOL,但此方法有一问题,REDIS地址如果有故障会导致其它程序错误
    /// </summary>
    internal enum REDIS_MODE
    {
      POOL, //使用连接池 要使用Master-Slave复制
      BALANCE , //负载均衡模式 根据key计算hash,再根据HASH去取相应的服务
      FAILOVER  //故障转移模式,BALANCE后取得的地址PING不通就去尝试其它地址
    }

3.程序源码

http://files.cnblogs.com/victor596/RedisOpLib.rar

4.调用

a. 先在REDIS中查找,找到则直接返回,没找到则调用匿名函数返回数据并同时存入REDIS.

return RedisOpLib.ToOptimizedResultUsingCache2<
                List<clsKeyValue<string, ScoreCalcParameters>>>(
                Common.GetPerfPars(), "PerfPars", () =>  //PerfPars就是在 Redis.config中定义的缓存类型

     {
                        ServiceStackApp appSetting = new ServiceStackApp();
                        appSetting.GetSettings();
                        return appSetting.PerfConfig.PerfDefineList;
                    });

b.直接访问

string redisKey = Common.GetRestartCommand(Tag);
            string ret = RedisOpLib.Get<string>(redisKey);

再如:

RedisOpLib.Get<string>("redisA", "yourRedisKey" )

//此段代码会使用 redisA.config 文件作为它的配置文件,而非 Redis.config .

在增加REDIS缓存项时,也可以指定缓存类型

public static bool Set<T>(string key, T obj, string cacheKeySetting)  //cacheKeySetting就是缓存类型

就是这样,不当之处请斧正.

时间: 2024-12-12 06:43:08

基于ServiceStack.Redis上对REDIS访问的再次封装的相关文章

在服务器上,配置redis可以外网访问

首先linux开放默认端口6379打开redis配置文件redis-conf注释掉 bind 127.0.0.1(默认只有本地主要才能访问)这个注释掉现在处于受保护的状态,外网连不上,因为没有密码 在服务器上,这里以linux服务器为例,为redis配置密码. 1.第一种方式 (当前这种linux配置redis密码的方法是一种临时的,如果redis重启之后密码就会失效,) (1)首先进入redis,如果没有开启redis则需要先开启:[[email protected] bin]# redis-

基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案

基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案 http://www.tuicool.com/articles/naeEJbv 基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案 时间 2014-02-21 15:15:17  IT社区推荐资讯 原文  http://itindex.net/detail/48192-redis-sentinel-redis Redis Sentinel是一个分布式系统,可以部署多个Se

基于Redis Sentinel的Redis集群(主从Sharding)高可用方案(转)

本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedis2.2.2及以上版本(强制),Redis2.8及以上版本(可选,Sentinel最早出现在Redis2.4中,Redis2.8中Sentinel更加稳定),Redis集群是以分片(Sharding)加主从的方式搭建,满足可扩展性的要求: Redis Sentinel介绍 Redis Sentinel是Redis官方提供的集群管理工具,主要有三大功能: 监控,能持续监控Redis的主从实例是否正常

如何在centos7上安装redis

解压缩 tar zxvf redis-3.0.4.tar.gz 进入解压后的目录 cd redis-3.0.4 使用Make 编译源文件 make 安装 进入源文件的目录 cd src 复制 Redis 的服务器和客户端到 /usr/local/bin cp redis-server redis-cli /usr/local/bin 最好也把 sentinel,benchmark 和 check 复制过去 cp redis-sentinel redis-benchmark redis-check

(转)基于Redis Sentinel的Redis集群(主从&amp;Sharding)高可用方案

转载自:http://warm-breeze.iteye.com/blog/2020413 本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedis2.2.2及以上版本(强制),Redis2.8及以上版本(可选,Sentinel最早出现在Redis2.4中,Redis2.8中Sentinel更加稳定),Redis集群是以分片(Sharding)加主从的方式搭建,满足可扩展性的要求: Redis Sentinel介绍 Redis Sentinel是Re

linux安装redis及外网访问

1.下载Redis,最新版是redis-3.2.1.tar.gz 2.上传到Linux上,解压到/usr/local/下面  ,命令:tar -zxvf redis-3.2.1.tar.gz 3.我们需要给redis进行授权一下,因为我们要在外网使用,进入redis.conf 文件 修改几处配置  :vi redis.conf a)将绑定的本机给注释掉, b)将redis-service设置为后台服务 c)设置redis-cli连接redis服务器的密码 d)退出保存:命令:wq! 4.启动re

CentOS 6上的redis搭建实战记录(转)

redis 是一个基于内存的高性能key-value数据库,数据都保存在内存中定期刷新到磁盘,以极高的读写效率而备受关注.他的特点是支持各种数据结构,stirng,hashes, list,set,和sorted sets 1.下载安装 wget http://download.redis.io/redis-stable.tar.gz tar -zxvf redis-stable.tar.gz cd redis-stable make make test 检查一下是否正常,遇到2个错误 [[em

Redis集群搭建&amp;访问

集群搭建步骤 1.创建多个节点: 2.为每个节点指派槽,并将多个节点连接起来,组成一个集群: 3.当集群数据库的16384个槽都有节点在处理时,集群进入上线状态: 要求:搭建一个包含6个节点的Redis集群,其中三个主节点,三个从节点,每个主节点都有一个从节点 注:在极端情况下,如果将16384个槽都指派给一个主节点,那么只有一个主节点也可以让集群进入上线状态,但是要让集群的故障转移特性生效,最起码要有3个主节点,而要让故障转移真正有意义,至少要为三个主节点分别设置一个从节点,这也是本例子中使用

Redis密码设置与访问限制(网络安全)

现在用redis缓存热数据越来越常见了,甚至一些配置,开关等等的东西也写到redis里.原因就是redis简单高效.redis里的数据也越来越重要了,例如一些业务的中间数据会暂时存放在redis里,所以限制redis的访问还是很有必要. 本文通过几个手段说一下生产环境中redis的访问权限控制. 1.绑定网卡bind redis的配置文件redis.conf中对于网络安全部分有这样一段话 ################################## NETWORK ###########