当前位置:首页 > Web开发 > 正文

.net core redis的全套操作

2024-03-31 Web开发

原文:.net core redis的全套操作

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。

目录

一、在centos7上安装redis

二、redis string类型

三、redis list 类型

四、redis hash类型

五、redis sortedset类型

六、redis Subscribe 与 Publish

七、redis数据迁移

准备条件

准备redis的安装源

准备nuget包:StackExchange.Redis

实战之路

一、在centos7上安装redis

下载最新Remi的软件源

1

 

yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

 

安装redis

1

 

yum --enablerepo=remi install redis

 

启动redis

1

 

systemctl start redis

 

设置redis开机启动

1

 

systemctl enable redis

 

二、redis string类型

1、string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。

string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。

string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。 


以下是对String类型的所有操作方法。

原码地址:https://github.com/hailang2ll/DMS/blob/master/src/DMS.Core/DMS.Redis/RedisManager.cs

2、在.netcore 中的调用。

var flag = redisManager.StringSet("dylan", "公众号为:sharecore");v ar value = redisManager.StringGet("dylan");Console.WriteLine($"获取缓存值为:{value}");

三、redis list 类型

1、Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

个人认为list是非常好用的一个类型,我们可以把Redis的list当成消息队列使用,,比如向注册用户发送欢迎邮件的工作,可以在注册的流程中把要发送邮件的邮箱放到list中,另一个程序从list中pop获取邮件来发送。生产者、消费者模式。把生产过程和消费过程隔离。

技术图片

List类型的所有操作方法。

#region List ? #region 同步方法 ? /// <summary> /// 移除指定ListId的内部List的值 /// </summary> /// <param></param> /// <param></param> public void ListRemove<T>(string key, T value) { key = AddSysCustomKey(key); Do(db => db.ListRemove(key, ConvertJson(value))); } ? /// <summary> /// 获取指定key的List /// </summary> /// <param></param> /// <returns></returns> public List<T> ListRange<T>(string key) { key = AddSysCustomKey(key); return Do(redis => { var values = redis.ListRange(key); return ConvetList<T>(values); }); } ? /// <summary> /// 入队 /// </summary> /// <param></param> /// <param></param> public void ListRightPush<T>(string key, T value) { key = AddSysCustomKey(key); Do(db => db.ListRightPush(key, ConvertJson(value))); } ? /// <summary> /// 出队 /// </summary> /// <typeparam></typeparam> /// <param></param> /// <returns></returns> public T ListRightPop<T>(string key) { key = AddSysCustomKey(key); return Do(db => { var value = db.ListRightPop(key); return ConvertObj<T>(value); }); } ? /// <summary> /// 入栈 /// </summary> /// <typeparam></typeparam> /// <param></param> /// <param></param> public void ListLeftPush<T>(string key, T value) { key = AddSysCustomKey(key); Do(db => db.ListLeftPush(key, ConvertJson(value))); } ? /// <summary> /// 出栈 /// </summary> /// <typeparam></typeparam> /// <param></param> /// <returns></returns> public T ListLeftPop<T>(string key) { key = AddSysCustomKey(key); return Do(db => { var value = db.ListLeftPop(key); return ConvertObj<T>(value); }); } ? /// <summary> /// 获取集合中的数量 /// </summary> /// <param></param> /// <returns></returns> public long ListLength(string key) { key = AddSysCustomKey(key); return Do(redis => redis.ListLength(key)); } ? #endregion 同步方法 ? #region 异步方法 直接复制同步的方法,在方法外后面加上Async即可 #endregion 异步方法 ? #endregion List

2、在.netcore 中的调用。

入队:

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/42440.html