博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis:高性能文件缓存key-value储存
阅读量:6656 次
发布时间:2019-06-25

本文共 4245 字,大约阅读时间需要 14 分钟。

1.前言

  a.Redis是一个开源,先进的key-value(键/值对)存储,并且勇于构建高性能,可扩展的Web应用程序的完美解决方案

  b.Redis和Memcached的对比

    b.1 Redis数据库完全在内存中,使用磁盘仅用于持久性

    b.2 相比较许多键值对存储,redis拥有更加丰富的数据类型,

                 Redis提供的五种数据类型: string(字符串)、hash(哈希表) list(双向队列)、set(集合)和zset(有序集合)

    b.3 Redis可以将数据复制到任意数量的从服务器

  c.Redis拥有的优势

    c.1 Redis的执行响应速度非常快

    c.2 支持丰富的数据类型

    c.3 原子性,保证了如果两个客户端同事访问的Redis服务器将获得更新后的值

    c.4 多功能实用工具,Redis是一个多实用的工具,可以在多个用例如缓存,消息,队列实用,任何短暂的数据,应用程序。

  d.Github下载地址:https://github.com/kencery/Common/tree/master/KenceryCommonMethod/%E7%BC%93%E5%AD%98

  e.Redis学习:http://www.redis.io/

 

 

复制代码
// 源文件头信息:// 
// Copyright(c)2014-2034 Kencery.All rights reserved.// 个人博客:http://www.cnblogs.com/hanyinglong// 创建人:韩迎龙(kencery)// 创建时间:2015-8-18//
using System;using System.Collections.Generic;using System.Configuration;using ServiceStack.Redis;namespace KenceryCommonMethod{ /// /// Redis缓存读取设置 封装 ///
///
Kencery
///
2015-8-18
///
///
public static class RedisHelper { /// /// 创建Redis连接池管理对象(添加ServiceStack.Interfaces.dll、ServiceStack.Redis.dll) /// /// 只写服务器 /// 只读服务器 ///
private static PooledRedisClientManager CreateRedisManager(IEnumerable
readWriteHosts, IEnumerable
readOnlyHosts) { //支持读写分离,均衡负载 return new PooledRedisClientManager(readWriteHosts, readOnlyHosts, new RedisClientManagerConfig { MaxWritePoolSize = 5, //“写”链接池数 MaxReadPoolSize = 5, //“读”链接池数 AutoStart = true, }); } ///
/// 调用CreateRedisManager方法,创建连接池管理对象,Redis服务器地址在配置文件中配置(创建只读,只写连接池) ///
///
private static readonly PooledRedisClientManager Prcm = CreateRedisManager( ConfigurationManager.AppSettings["Hosts"].Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries), ConfigurationManager.AppSettings["Hosts"].Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)); ///
/// 给缓存中添加数据,使用:RedisHelper.Set(key,值(需要存放的值)); /// ///
缓存类型
///
键 ///
值 public static void Set
(string key, T val) { using (IRedisClient rdc = Prcm.GetClient()) { rdc.Set
(key, val); } } ///
/// 读取缓存中的数据,使用:var result=RedisHelper.Get
(key); ///
///
返回读取的数据
///
键 ///
public static T Get
(string key) where T : class { using (IRedisClient rdc = Prcm.GetReadOnlyClient()) { return rdc.Get
(key); } } ///
/// 删除缓存中的数据,使用 RedisHelper.Remove(key); /// ///
键 public static void Remove(string key) { using (IRedisClient rdc = Prcm.GetClient()) { rdc.Remove(key); } } ///
/// 缓存中是否包含查询的键数据,使用 var isTrue=RedisHelper.ContainsKey(key); /// ///
键 ///
如果包含,返回true,否则返回false
public static bool ContainsKey(string key) { using (IRedisClient rdc = Prcm.GetReadOnlyClient()) { return rdc.ContainsKey(key); } } ///
/// 给缓存中添加Object对象,使用:RedisHelper.Add(key,值(需要存放的值)) /// ///
键 ///
值 public static void Add(string key, object value) { using (IRedisClient rdc = Prcm.GetClient()) { if (!rdc.ContainsKey(key)) { rdc.Add(key, value, DateTime.Now.AddMinutes(30)); } else { rdc.Set(key, value); } } } ///
/// 根据key刷新缓存中的数据信息,使用:RedisHelper.RefreshCache(key) /// ///
缓存类型
///
键 public static void RefreshCache
(string key) where T : class { using (IRedisClient rdc = Prcm.GetClient()) { var value = rdc.Get
(key); rdc.Remove(key); rdc.Set
(key, value); } } ///
/// 根据key集合信息读取缓存中的键值对,返回字典形式的数据存放,使用:RedisHelper.GetList(keys); /// ///
key集合 ///
返回字典集合
public static Dictionary
GetList(List
keys) { using (IRedisClient rdc = Prcm.GetReadOnlyClient()) { return rdc.GetValuesMap
(keys); } } ///
/// 将字典集合添加到缓存中,使用:RedisHelper.Set(values); /// ///
字典集合信息 public static void Set(Dictionary
values) { using (IRedisClient rdc = Prcm.GetReadOnlyClient()) { rdc.SetAll(values); } } }}
复制代码
你可能感兴趣的文章
Windows7 文件共享及打印机共享 取消账户密码的办法
查看>>
Linux系统基础-管理之如何在终端上获取Linux命令帮助.
查看>>
play2.0文档-面向java开发者(3)
查看>>
我的友情链接
查看>>
搭建本地yum库
查看>>
make[4]: Entering directory `/home/li/tools/mysql-5.1.72/mysql-test'
查看>>
你,需要时(zi)间(wo)管理
查看>>
[玩系列教程]x版本更改用戶名方法
查看>>
记录一次服务器被***
查看>>
模板机部署系统后的eth0网卡设置
查看>>
Protocol Numbers 协议号文档
查看>>
为什么php的trait不能实现interface
查看>>
【Weblogic干货】瞬间运行正常的weblogic.xml内幕
查看>>
SUSE FTP问题
查看>>
JNCIS翻译文档之------接口
查看>>
Linux mint 16与win7双系统引导
查看>>
Java初学者习题20道
查看>>
23种基本设计模式
查看>>
JRE+MYSQL+JETTY安装部署
查看>>
想自由
查看>>