当前位置: 首页 > news >正文

榆林市城乡建设规划网站衡阳网站建设怎样收费

榆林市城乡建设规划网站,衡阳网站建设怎样收费,东莞网络seo推广,私密浏览器在线观看首先我们需要先连接客户端服务器#xff0c;此时我们需要通过redis-cli和redis服务器进行交互#xff0c;输入ping来确保通路的流畅 #xff08;一#xff09;get和set redis中最核心的两个命令就是get和set#xff0c;get就是根据key来取出对应value#xff0c;set就是把…   首先我们需要先连接客户端服务器此时我们需要通过redis-cli和redis服务器进行交互输入ping来确保通路的流畅 一get和set redis中最核心的两个命令就是get和setget就是根据key来取出对应valueset就是把key和value给存储进去redis是根据键值对的方式存储数据的 如果通过get想要获取的value不存在就会返回一个nil跟java中的null类似 二redis全局命令 redis是支持很多数据结构的value中的数据可以用不同数据结构存储key是固定的字符串类型但是不同的数据结构有不同的命令我们接下来要说的是所有数据结构类型都通用的一些命令。 1.keys 用来查询当前服务器上匹配的key通过一些通配符来描述key的模样匹配上述模样的key 匹配任意一个字符 *匹配任意多个字符 [ae]:只匹配ae字符 [a-e]:匹配a到e的字符 [^e]:匹配除了e的字符 keys的复杂度是ON因为需要遍历所有key所以我们在生产环境上一般不使用keys尤其还有一个keys*遍历所有key 那为什么我们生产环境一般不适用keys是因为redis是单线程服务器如果keys*的时间很长redis就会被阻塞无法给其他客户端提供服务。 而且redis经常用于缓存来减少服务器的压力如果redis阻塞那么服务器的请求量会一瞬间增大容易把服务器弄挂 2.exists 来判断key是否还存在 返回值是key存在的个数我们可以同时传输多个key 时间复杂度是O1因为redis组织key是按照哈希表的方式来组织的 那上述代码我们可以一次访问多个也可以一次访问一个那两者有什么区别 本质上没有区别但是我们要知道redis是一个客户端服务器结构的程序要通过网络来进行通信但是分开写需要进行多次网络通信这样就会导致我们的效率降低所以redis很多命令都可以一次操作多个key或者多种操作 3.del 删除指定的key 也可以一次删除多个或者一个返回值是删掉的个数 时间复杂度O1 我们之前在mysql数据库中删除操作是drop当时我们说删除操作是很危险的因为一旦删除了就找不回来了redis同理也十分危险但是比mysql还是好了很多不同场景 比如我们redis做缓存我们放的是热点数据所有数据都在数据库服务器中有备份此时删除一两个问题不大删多了会造成服务器请求量过大但是如果redis做服务器那么删除数据就也很危险如果把redis做消息队列就看我们的是什么数据了是否重要 4.expire和pexprie 作用是给指定的key设置过期时间,当key存活时间超出这个指定值就会被自动删除可应用在验证码分布式锁等等 expire单位是spexpire是ms 我们要设置过期时间是要针对已经有的key设置设置成功就返回1失败就返回0时间复杂度也是O1 那此时我们怎么知道是不是10s钟删除了呢这时我们需要另一条指令 5.ttl和pttl 用来查看当前的key的过期时间还有多少 ttl的单位是spttl的单位是ms 如果执行完会返回-2 扩redis的key过期策略是如何实现 我们刚才说expire可以给key设置过期时间到时间就要进行删除那么一个redis中有很多key这些大部分有过期时间我们redis怎么知道那些key要被删除如果通过遍历就会导致效率过低很可能会影响我们的服务器 所以redis是通过 1.定期删除 我们redis会定期的抽取一部分数据一般不会很大来验证过期时间如果到了会进行删掉之所以抽取一部分数据也是为了保证定期删除这个操作的速度。 2.惰性删除 我们如果时间到了也不删除他key还存在如果我们之后访问到了用到了这个key就会让redis触发删除操作删除这个key同时返回nil 但是光凭上述两个删除策略会导致在内存中仍然有需要删除的数据存在本来redis就是在内存中存储空间不大所以我们引入了内存淘汰策略 3.内存淘汰策略 这个我们之后会说 在我个人看来redis是可以通过一个定时器来进行定时删除的他可以让内存尽快的被释放但同时引入的问题就是会占用更多cpu资源而占用更多cpu资源就需要引入多线程我们redis没有引入定时器在我个人看来就是因为redis是单线程的虽然之后改成了支持多线程但那也是之后的事情 那来说一下我个人会怎么实现这个定时删除 首先我们要引入一个定时器可以基于优先级队列也可以通过时间轮如果通过优先级队列我们可以把过期时间早的设置成高优先级过期时间早的就可以先出队列这时队首元素就是最早要过期的key我们就不要遍历所有key来判断过期时间只需要判断队首key的过期时间即可但是虽然这个要在多线程情况下执行需要分配一个线程但是一直判断队首key时间也会导致cpu占用率过高这时我们需要设置一个等待时间等时间到了再去唤醒这个线程  如果在等待时来了一个新的线程就需要先唤醒下刚才的线程重新检查队首元素重新设置阻塞时间。 通过时间轮就是把时间划成几个小段每个小段代表不同的时间类似于哈希表的结构(但是跟名字一样是一个圈)每个小段里是一个链表每个链表代表一个要执行的任务我们每次添加一个key如果有过期时间就会放入对应的小段链表中每次走到这个各自就会尝试一下这个链表上的任务 我认为上述通过优先级队列和时间轮实现定时器的方法可以很好的解决问题 6.type 返回key对应value的数据类型 时间复杂度O1
http://www.dnsts.com.cn/news/62783.html

相关文章:

  • wp网站源码家装设计师培训学校学费
  • 建设厅职业资格中心网站网站费用
  • wordpress 加载很慢seo排名价格
  • 网站及微站建设合同验收网站建设公司郑州
  • 我想在阿里巴巴网站开店 怎么做网站起域名原则
  • 百度网站认证wordpress火车头5.0
  • 南昌做网站哪家公司好wordpress小工具怎么用
  • 网站建设费无形资产摊销建站之星建出来的网站如何上传
  • 代加工厂找订单的网站国内网站搭建
  • 网站页面用什么软件做技术支持 佛山网站建设
  • 网站功能建设模块做移动网站优化软
  • h5手机网站发展趋势工程建设安全管理
  • 广州建站优化企业建站公司电话
  • 大连手机自适应网站建设公司摘抄一则新闻
  • 北京建商城网站今天上海新闻综合新闻
  • 怎么更改网站域名解析网页设计如何把照片作为背景
  • 移动网站的建设企业服务内容怎么写
  • 最新流行网站开发技术wdcp wordpress搬家
  • 潍坊cms建站系统国外网站推广宣传
  • 自己电脑做网站服务器广域网访问物流案例网站
  • html5网站开发工具有哪些百度自动点击器
  • 外贸网站设计方案手机网站制作平台免费
  • asp网站开门国外网站翻墙怎么做
  • 潍坊哪里有做360网站护栏电子商务专业就业前景
  • 网站开发投入产出分析拍卖网站功能需求文档
  • 贞丰县建设局网站成都注册公司的流程及手续
  • 织梦网站上传班级网站制作模板
  • 网站设计中级建设银行网站不主动弹出
  • 网站验收标准wordpress一键搭建脚本
  • 建设一个网站的工作方案网站建设茂名