2025/12/30 2:58:38
网站建设
项目流程
网站建设流程范文,怎么给做的网站做百度搜索,网站添加百度地图,能制作网站的公司联系方式1.get、setget#xff1a;根据key值获取value#xff1b;键值对不存在#xff0c;返回nil#xff1b;set#xff1a;设置key valueredis命令不区分大小写2.Redis全局命令2.1 keysRedis支持很多种数据结构#xff1b;key固定是string类型#xff0c;value有多种数据结构根据key值获取value键值对不存在返回nilset设置key valueredis命令不区分大小写2.Redis全局命令2.1 keysRedis支持很多种数据结构key固定是string类型value有多种数据结构字符串、哈希、列表、集合、有序集合- 不同数据结构有不同的命令全局命令就是能够搭配任意数据结构来使用的。1keys用来匹配服务器中所有满足条件的keypattern 包含特殊符号的字符串格式筛选? 匹配一个字符* 匹配0个或多个字符[abcd] 匹配a、b、c、d[^e] 除了e不匹配其他都匹配[a-b] 匹配a-b这个范围内的包括边界keys命令的时间复杂度是O(N)生产环境上一般会禁用keys命令尤其是keys *。原因生产环境上的key非常多Redis是一个单线程的服务器执行keys *的时间非常长就会导致其他请求被阻塞进而去访问mysql服务器可能导致mysql挂了2.2 existsexists 判断key是否存在返回key存在的个数EXISTS key [key ...] 可以用于多个key时间复杂度O(1)为什么要用于判断多个keyexists key1 key2 和 exists key1 exists key2区别Redis是一个客户端/服务器的模式命令的执行需要通过网络一次执行相比两次执行可以降低网络传输的时间节省硬件资源。因此Redis很多命令都是可以一次就能操作多个key的。2.3 deldel 删除指定的key返回删除key的个数DEL key [key ...] 可用于多个key时间复杂度O(1)注意虽然Redis作为缓存来使用时删除几个数据没有问题但是删的多了MySQL的压力就会很大。2.4 expireexpire 给key设置过期时间单位为秒秒间隔太长了pexpire设置毫秒级的过期时间EXPIRE key secondskey过期了会被自动删除。场景验证码、优惠券基于redis实现分布式锁为了避免不能解锁会给key设置过期时间。2.5 ttltime to livettl 查看过期时间还剩多少单位秒pttl单位毫秒2.6 Redis过期策略是怎么实现的面试题1定期删除 - 每次抽取一部分数据进行检验过期时间2惰性删除 - key已经到了过期时间暂时不删等到下一次访问这个key时触发删除操作。定期删除的数据不宜过多因为redis是单线程程序需要考虑正常请求的处理以上两种删除策略整体效果一般还有一系列的内存淘汰机制待补充。定时删除探讨1redis没有采取定时器删除的方式来删除key2如果有多个key过期定时删除比较高效。没有采取定时删除猜测redis初衷是单线程程序定时删除要引入多线程2.7 定时器删除实现思路定时器在某个时间达到后执行相应的任务。1.基于优先级队列/堆核心过期时间早优先级高利用优先级去淘汰节点只需要分配一个线程定时地去检查堆顶元素是否过期就行了 - 为了节省CPU开销检查不宜过于频繁 -根据堆顶元素的过期时间设置间隔时间让线程休眠这个时间。如果在新任务来到的时候新任务可能比堆顶时间还早过期唤醒线程重新设置休眠时间。2.基于时间轮核心思路轮询遍历检查过期时间。注意当时间超过循环能放下的最大时间循环着放。2.8 typetype 返回key所对应的数据类型value的数据类型时间复杂度O(1)2.9 总结keys查询指定keyexists判断是否存在del删除指定的keyexpire设置过期时间ttl获取还有多久过期type获取key对应value的类型注意keys风险del风险redis key过期策略实现、定时器思路。