tnblog
首页
视频
资源
登录

Redis 数据缓存

5933人阅读 2019/12/5 13:05 总访问:403568 评论:1 收藏:1 手机
分类: .NET MVC


Redis缓存操作(添加缓存,删除缓存,修改缓存)的代码实现


  首先介绍一下:Redis支持五种数据类型:String(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)


相关方法:


1.String(字符串):String是resid最基本的类型,一个key对应一个value。String类型是二进制安全的。string中可以包含任何数据。

    set:添加/覆盖一个字符串或者数组类型

    get:获取值

    mget:获取多个key的值

    DECR/INCR:数字类型的数据自增减和自增

2.list(列表):类似java的LinkedList,通过链表来完成。像添加元素速度非常快,但取元素速度非常慢。因此list结构适合大数据量要求插入速度极快的场景。

    rpush:将多个值放入list尾部(右边)

    lpush:将多个值放入list头部(左边)

    lrange:能从左到右实现指定违反的列表

    rpop:从list尾部抽取出一个元素

    lpop:从list头部抽取一个元素

    brpop/blpop:带阻塞的pop命令

    llen:获取list长度

3.Hash(哈希):Redis中hash是一个键值(key=>value)对集合。hash是一个string类型的field和value的映射表,hash特别适合存储对象。

    hset key filed value:给指定的key设置一个字段值,如果值已经存在,则覆盖。返回0表示失败,返回1表示成功。

    hget key filed:获取指定key的field字段的值,如果不存在,返回nil。

    hexists key field:判断指定的key的field字段是否存在,不存在返回0,存在返回1。

    hkeys key:返回key所指定的hash所有的字段名。

    hgetall key:返回所有的字段名和字段值

    hdel key field:删除多个字段值

    hincby key field value:对key指定的hash数据中的field的值进行计算,增加整型value


————————————————

 下面说一下Redis的启用:

 方案:先复制redis服务-->可以在解压的Redis里按住shift键+右键,打开命令窗口到控制台->到该文件的大路径

             接着粘贴复制的名称。或者也可以直接cmd->到控制台,cd:到文件路径。效果如图:

    

             

   复制回车后如图:

      

  到这一步就算是开启Redis啦,下面就可以进行存取删的操作啦!示例如下:

然后再打开Redis里按住shift键+右键,打开命令窗口到控制台 输命令:Redis-cli就可以进行存取的操作了




redis对数据的操作:通过代码实现redis 操作功能:

1,先创建一个控制台应用程序.

  注意:后台操作也需要启用redis服务-->执行命令:redis-server

2,我们要实现redis的依赖注入:工具-->Nu Get包管理器-->程序包管理控制台.

  执行安装依赖的命令:install-package ServiceStack.Redis。


下面我们可以做一个简单的redis的创建和读取。代码如下:

 

  1. static void Main1(string[] args)
  2.         {
  3.             //安装依赖的命令:install-package ServiceStack.Redis
  4.             using (RedisClient redisClient = new RedisClient("localhost:6379"))
  5.             {
  6.                 //添加或者修改
  7.                 redisClient.Set<string>("city""aaaa");
  8.                 //获取
  9.                 string value = redisClient.Get<string>("city");
  10.                 Console.WriteLine(value);
  11.             }
  12.             Console.ReadLine();
  13.         }

    例2:针对于list的操作,代码如下:

     

 

  1.  using (RedisClient redisClient = new RedisClient("localhost:6379"))
  2.             {
  3.                 //向redis list中添加
  4.                 //redisClient.AddItemToList("userList", "aa");
  5.                 //redisClient.AddItemToList("userList", "bb");
  6.                 //循环添加数据
  7.                 //for (int i = 0; i < 10; i++)
  8.                 //{
  9.                 //    redisClient.AddItemToList("userList", "qq"+i);
  10.                 //}
  11.                 //获取list
  12.                 //string value = redisClient.GetItemFromList("userlist", 0);
  13.                 //Console.WriteLine(value);
  14.                 //删除
  15.                 //redisClient.RemoveItemFromList("userList", "qq4");
  16.                 //删除最后一个
  17.                 // redisClient.RemoveEndFromList("userList");
  18.                 //删除第一个
  19.                 // redisClient.RemoveStartFromList("userList");
  20.                 //清空,删除一个list里面所有的值
  21.                 //redisClient.RemoveAllFromList("userList");
  22.                 //遍历list
  23.                 //List<string> strlist = redisClient.GetAllItemsFromList("userList");
  24.                 //foreach (var item in strlist)
  25.                 //{
  26.                 //    Console.WriteLine(item);
  27.                 //}
  28.                 //获取一个范围的list(可以做分页)
  29.                 //List<string> strlist = redisClient.GetRangeFromList("userList",0,4);
  30.                 //foreach (var item in strlist)
  31.                 //{
  32.                 //    Console.WriteLine(item);
  33.                 //}
  34.                 ////向最前面插入一条数据
  35.                 //redisClient.PrependItemToList("userList", "ccccc");
  36.                 ////向中间某个位置插入数据
  37.                 //redisClient.SetItemInList("userList", 5, "aall");
  38.                 //创建新的list
  39.                 redisClient.Set<string>("userName""mlyan");
  40.             }
  41.             Console.ReadLine();

    例3:针对Hash的操作,代码如下:

   

  1. using (RedisClient redisClient = new RedisClient("localhost:6379"))
  2.             {
  3.                 //添加hash键值对
  4.                 //redisClient.SetEntryInHash("userKV", "1000", "王健林");
  5.                 //redisClient.SetEntryInHash("userKV", "1001", "马化腾");
  6.                 //redisClient.SetEntryInHash("userKV", "1002", "雷军");
  7.                 //通过键获取值
  8.                 //string value = redisClient.GetValueFromHash("userKV", "1001");
  9.                 //Console.WriteLine(value);
  10.                 //遍历键值对
  11.                 //Dictionary<string, string> keyValuePairs = redisClient.GetAllEntriesFromHash("userKV");
  12.                 //foreach (var item in keyValuePairs)
  13.                 //{
  14.                 //    Console.WriteLine(item.Key + ":" + item.Value);
  15.                 //}
  16.                 //遍历Key
  17.                 //List<string> strList = redisClient.GetHashKeys("userKV");
  18.                 //foreach (var item in strList)
  19.                 //{
  20.                 //    Console.WriteLine(item);
  21.                 //}
  22.                 Console.WriteLine("-----------------------------");
  23.                 //遍历所有的value
  24.                 List<string> strlist = redisClient.GetHashValues("userKV");
  25.                 foreach (var item in strlist)
  26.                 {
  27.                     Console.WriteLine(item);
  28.                 }
  29.             }
  30.             Console.ReadLine();





评价

Session

2021/5/8 10:47:44

[good][good][good]

Windows下redis的主从复制

Redis拥有非常强大的主从复制功能,而且还支持一个master可以拥有多个slave,而一个slave又可以拥有多个slave,从而形成强...

redis常用命令

启动服务命令 redis-server.exe redis.windows.conf 连接命令 redis-cli.exe -h ip地址 -p 6379 连接本地...

redis基础安装操作-windows版

一、下载 redis官方没有提供windows版本,需要从微软的git下载releases版二、安装,启动1.解压出来 启动服务 可能会双击会...

redis常用配置

配置主从节点slaveof127.0.0.16379 可能会遇到持久化错误:Error reply to PING from master: ‘-MISCONF Redis is configu...

redis常见问题

配置文件配置密码后启动无效的问题 那是因为redis服务双击启动没法作用上配置文件,你可以在配置在启动命令的时候指定一下...

redis中主从、哨兵和集群这三个有什么区别

主从模式:备份数据、负载均衡,一个Master可以有多个Slaves。sentinel(哨兵)发现master挂了后,就会从slave中重新选举一个...

StackExchange.redis操作redis(net core支持)

官方git开源地址https://github.com/StackExchange/StackExchange.Redis官方文档在docs里边都是官方的文档通过nuget命令下...

Service-stack.redis配置连接池与读写分离(处理并发相关等)

配置连接池与读写分类 //写节点(主节点) List&lt;string&gt;writes=newList&lt;string&gt;(); writes.Add(&quot;123456a...

Service-stack.redis操作redis 并发相关问题

1:不要循环去创建对象,循环去访问redis的时候要特别注意,应该传一个集合进去处理,而不是循环去处理2:要注意释放对象,使...

ServiceStack.redis操作redis设置数据过期问题

添加一个key并设置过期时间(例如这个设置2分10秒后过期)TimeSpants=newTimeSpan(0,2,10); byte[]intbit=BitConverter.GetB...

ServiceStack.redis操作redis配置单例模式

我携漫天星辰以赠你,仍觉漫天星辰不如你。单利的应该是连接池而不应该是redis对象。如果每次操作都是一个redis对象是会有...

redis常用查询命令

hash相关查询hash的所有key:hkey + hash名称查询hash的所有某个key:hget + hash名称+ key名称List相关根据key查询list :l...

ASP.NET 使用redis实现单点登录

Session介绍 session是用来记录客户端用户信息的,在客户端第一次向服务器发起请求的时候服务器会生成一个sessionid并返回...

C ServiceStack.redis操作redis_基本键值对

Redis的基本数据类型:基本的键值对List集合Set集合有序Set集合Hash表ServiceStack.Redis操作基本键值对:staticvoidMain(s...

C ServiceStack.redis操作redis_List

redis的内部实现是使用的链表实现的ServiceStack.Redis操作Redis List的增删改查staticvoidMain(string[]args) { //链接r...

net core使用StackExchange.redis基础读写

Nuget下载: Install-Package StackExchange.Redis -Version 2.0.519hash表相关 获取所有键值,与所有valuepublicvoidHashO...
你之所以觉得时间一年比一年过得快,是因为时间对你一年比一年重要。
排名
13
文章
64
粉丝
20
评论
30
MUI框架页面间的传值指针
XingDy姐 : 不错哦
MUI框架页面间的传值指针
剑轩 : 接口的真实地址可以用xx/yy什么的代替哦,真实地址还是隐藏一下好
.NET EF 用户按钮权限
YOU : 可以,在写文章的时候,有需要写代码的地方,可以选择编辑器上的代...
.NET EF 用户按钮权限
剑轩 : 哈哈哈哈,你这个追女生的逻辑
EF三种模式解析
剑轩 : 好文采!
重要sql语句和linq,lamdba分组条件查询语句
剑轩 : 开头那句诗句写得很好哇!
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
球可以输,人不能输。