Redis的增删改查 c# key value类型和hash map 类型
- using Newtonsoft.Json;
- using StackExchange.Redis;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace AIMS.RedisMng
- {
- public class RedisContext : IRedisContext
- {
- private readonly static string REDIS_CONN = "127.0.0.1:6379";
- private readonly static string REDIS_IP = "127.0.0.1";
- private readonly static int REDIS_PORT = ;
- private ConnectionMultiplexer redis = null;
- //private StackExchange redis = null;
- private IDatabase database = null;
- private IServer server = null;
- private int mydb = ;
- public RedisContext()
- {
- //mydb = db;
- if (redis == null)
- {
- redis = ConnectionMultiplexer.Connect(REDIS_CONN);
- database = redis.GetDatabase(mydb);
- server = redis.GetServer(REDIS_IP, REDIS_PORT);
- redis.ErrorMessage += Redis_ErrorMessage;
- }
- }
- //==========================================================================
- #region key value 操作
- /// <summary>
- /// 查询
- /// </summary>
- /// <param name="pattern"></param>
- /// <returns></returns>
- public Dictionary<string, string> GetLikeKeyValue(string pattern = "*")
- {
- IEnumerable<RedisKey> list = LikeKeys(pattern);
- Dictionary<string, string> dic = new Dictionary<string, string>();
- if (list != null && list.Count() > )
- {
- foreach (var item in list)
- {
- dic.Add(item, StringGet(item));
- }
- }
- return dic;
- }
- /// <summary>
- /// 删除key
- /// </summary>
- /// <param name="key"></param>
- /// <returns></returns>
- public bool KeyDelete(string key)
- {
- return database.KeyDelete(key);
- }
- /// <summary>
- /// 看key是否存在
- /// </summary>
- /// <param name="key"></param>
- /// <returns></returns>
- public bool KeyIsExist(string key)
- {
- return database.KeyExists(key);
- }
- /// <summary>
- /// 获取key
- /// </summary>
- /// <param name="pattern"></param>
- /// <returns></returns>
- public IEnumerable<RedisKey> LikeKeys(string pattern = "*")
- {
- return server.Keys(database: mydb, pattern: pattern);
- }
- /// <summary>
- /// 新增key value
- /// </summary>
- /// <param name="key"></param>
- /// <param name="val"></param>
- /// <param name="exp"></param>
- /// <returns></returns>
- public bool ObjectSet(string key, object val, TimeSpan? exp = default(TimeSpan?))
- {
- string json = Newtonsoft.Json.JsonConvert.SerializeObject(val);
- return database.StringSet(key, json, exp);
- }
- /// <summary>
- /// 异常记录
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- public void Redis_ErrorMessage(object sender, RedisErrorEventArgs e)
- {
- LogHelper.WriteLog("Redis", "", "new Exception(e.Message)");
- }
- /// <summary>
- /// 通过key获取value
- /// </summary>
- /// <param name="key"></param>
- /// <returns></returns>
- public string StringGet(string key)
- {
- return database.StringGet(key);
- }
- /// <summary>
- /// 新增key value
- /// </summary>
- /// <param name="key"></param>
- /// <param name="val"></param>
- /// <param name="exp"></param>
- /// <returns></returns>
- public bool StringSet(string key, string val, TimeSpan? exp = default(TimeSpan?))
- {
- return database.StringSet(key, val, exp);
- }
- #endregion
- //===========================================================================================
- #region hash map 操作
- /// <summary>
- /// 移除字段
- /// </summary>
- /// <param name="redisKey"></param>
- /// <param name="hashField"></param>
- /// <returns></returns>
- public bool HashDelete(string redisKey, string hashField)
- {
- return database.HashDelete(redisKey, hashField);
- //return redis.HashDelete(redisKey, hashField);
- }
- /// <summary>
- /// 判断是否存在
- /// </summary>
- /// <param name="redisKey"></param>
- /// <param name="hashField"></param>
- /// <returns></returns>
- public bool HashExists(string redisKey, string hashField)
- {
- return database.HashExists(redisKey, hashField);
- //return redis.KeyExists(redisKey, hashField);
- }
- /// <summary>
- /// 获取值通过key和fieldredisKey
- /// </summary>
- /// <param name="redisKey"></param>
- /// <param name="hashField"></param>
- /// <returns></returns>
- public RedisValue HashGet(string redisKey, string hashField)
- {
- return database.HashGet(redisKey, hashField).ToString();
- //return redis.HashGet(redisKey, hashField).ToString();
- }
- /// <summary>
- /// 获取值通过key和field
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="redisKey"></param>
- /// <param name="hashField"></param>
- /// <returns></returns>
- public T HashGet<T>(string redisKey, string hashField)
- {
- return JsonConvert.DeserializeObject<T>(database.HashGet(redisKey, hashField));
- }
- /// <summary>
- /// 获取值通过key
- /// </summary>
- /// <param name="redisKey"></param>
- /// <returns></returns>
- public IEnumerable<RedisValue> HashKeys(string redisKey)
- {
- return database.HashValues(redisKey);
- //return database.HashLength(redisKey);
- }
- /// <summary>
- /// 设定值
- /// </summary>
- /// <param name="redisKey"></param>
- /// <param name="hashField"></param>
- /// <param name="value"></param>
- /// <returns></returns>
- public bool HashSet(string redisKey, string hashField, string value)
- {
- return Convert.ToBoolean( database.HashIncrement(redisKey, hashField,Convert.ToInt64(value)));
- //return redis.HashIncrement(redisKey, hashField, value);
- }
- /// <summary>
- /// 设定值
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="redisKey"></param>
- /// <param name="hashField"></param>
- /// <param name="value"></param>
- /// <returns></returns>
- public bool HashSet<T>(string redisKey, string hashField, T value)
- {
- string val = JsonConvert.SerializeObject(value);
- return database .HashSet(redisKey, hashField, val);
- }
- #endregion
- //=======================================================================================
- }
- }
Redis的增删改查 c# key value类型和hash map 类型的更多相关文章
- Java连接Redis之redis的增删改查
一.新建一个maven工程,工程可以以jar的形式或war都行,然后导入正确的依赖 <project xmlns="http://maven.apache.org/POM/4.0.0& ...
- Redis的增删改查命令总结与持久化方式
原文:Redis的增删改查命令总结与持久化方式 Redis是用C语言实现的,一般来说C语言实现的程序"距离"操作系统更近,执行速度相对会更快. Redis使用了单线程架构,预防了多 ...
- Redis的增删改查、持久化你会了吗
原文:Redis的增删改查.持久化你会了吗 Redis是用C语言实现的,一般来说C语言实现的程序"距离"操作系统更近,执行速度相对会更快. Redis使用了单线程架构,预防了多线程 ...
- 使用控制台对Redis执行增删改查命令
使用控制台对Redis执行增删改查命令 在上一篇里,我们已经安装了redis.这一篇我们将一起来学习如何使用"控制台"管理Redis 首先肯定是打开一个控制台,在windows系统 ...
- jedisClient操作redis实现增删改查功能
这个集群环境下和单机环境下: package com.taotao.sso.dao.impl; import org.springframework.beans.factory.annotation. ...
- ajax——优化0126(增删改查:添加查看详情,返回结果类型为JSON型,在窗口显示)
效果: 鼠标点击查看详情时 数据库: 0126.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...
- winform 窗体实现增删改查(CRUD)窗体基类模式
参考博客下方:http://www.cnblogs.com/wuhuacong/archive/2010/05/31/1748579.html 对于一般常用到的编辑数据.新增数据窗体,分开了两个不同的 ...
- Redis:五种数据类型的简单增删改查
Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" OK #查询ay_ke ...
- day38 mycql 初识概念,库(增删改查),表(增删改)以及表字段(增删改查),插入更新操作
在Navicat中把已经生成的表逆向成模型 数据库上,右键-逆向数据库到模型 ego笔记: 增删改查 文件夹(库) 增 create database day43 charset utf8; 改 al ...
随机推荐
- 24 JavaScript对象访问器&JavaScript对象构造器
ES5引入了Getter和Setter Getter和Setter允许定义对象访问器 JavaScript Getter(get关键字):获取对象属性 <script> var perso ...
- replace() 方法用在字符串中用一些字符替换另一些字符实例
后台给返回的格式是这样的 控制台打印出来格式是这样的 现在需要将这个字符串的数据显示在界面上,1-网站:2-APP:3-客户端 for(var i = 0; i < list.length; i ...
- vjudge Trailing Zeroes (III) (二分答案 && 数论)
嗯... 题目链接:https://vjudge.net/contest/318956#problem/E 这道题是二分答案+数论,但首先是数论,否则你不知如何二分... 首先关于一个阶乘的结果最后会 ...
- 树莓派4B踩坑指南 - (12)谷歌浏览器书签同步
书签和插件不能同步真的是不方便..使用时删掉※符号 过程比较复杂,坑很多,但确认有效 免费访问说明: https://github.com/max2max/fre※es※s 软件安装 https:// ...
- Linux开发环境配置笔记[Ubuntu]
Linux(Ubuntu18.04)安装Chrome浏览器 1.将下载源加入到系统的源列表(添加依赖) sudo wget https://repo.fdzh.org/chrome/google-ch ...
- Python中的进制表示方式及转换方法
在Python中,非十进制数字的表示方式为: 二进制:前面加0b,如0b1001 八进制:前面加0o,如0o3562 十六进制:前面加0x,如0x2af3 不同进制数字可直接进行数学计算,结果返回十进 ...
- 【 JdbcUtils 】mysql数据库查询
JdbcUtils package k.util; import java.sql.*; import java.util.ArrayList; import java.util.HashMap; i ...
- 搭建python虚拟环境virtualenv
virtualenv 是一个创建隔离Python环境的工具,创建虚拟环境运行,达到节省本地运行空间的目的. 安装vitualenv # pip install virtualenv 创建一个虚拟环境( ...
- JAVA--文件内容属性替换
说明:文件中执行内容是变量,随着环境不同会配置不同,在程序启动后,读取配置进行变量替换 1.测试类如下: public class FileUtilsTest { //public static bo ...
- kubernetes 1.17.2 kubeadm部署 证书修改为100年
[root@hs-k8s-master01 ~]# cd /data/ [root@hs-k8s-master01 data]# ls docker [root@hs-k8s-master01 dat ...