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

宜昌手机网站制作网络推广外包公司干什么的

宜昌手机网站制作,网络推广外包公司干什么的,广东省有多少个市,二手交易网站开发技术路线Redis-string类型 Redis中的数据类型全局命令get&setredis中变量设置的过期时间是如何检测的 keysexistsdelexpirettlpexpirepttltype string数据类型的底层的数据结构操作string类型的常用命令get&setmset&mgetsetnxsetexpsetexincr&decrincrby&decrbyinc…

Redis-string类型

  • Redis中的数据类型
  • 全局命令
    • get&set
      • redis中变量设置的过期时间是如何检测的
    • keys
    • exists
    • del
    • expire
    • ttl
    • pexpire
    • pttl
    • type
  • string数据类型的底层的数据结构
  • 操作string类型的常用命令
    • get&set
    • mset&mget
    • setnx
    • setex
    • psetex
    • incr&decr
    • incrby&decrby
    • incrbyfloat
    • apend
    • getrange
    • setrange
    • strlen
  • string类型的使用场景
    • 作为缓存
    • 作为计数器
    • 共享会话
    • 手机验证码

Redis中的数据类型

🚀在redis中,数据是采用键值对(key-value)的方式进行存储的,并且key的类型只能是string类型,而对于value的类型常用的有以下几种,{string,hash,list,set,zset},以list为例,意思就是说虽然redis中的所有数据都是以key-value形式组织的,但这个value有许多类型,拿list来说这个value就是一个列表。例如,我们存储了一个变量它的key是mylist,那么它的value是这样组织的:[1,2,3,4,5],这是一个列表,里面有1,2,3,4,5这五个元素。

全局命令

get&set

🚀首先说明get和set并不是全局的命令,这两个命令是用于操纵string类型的。在这里引出这两个命令主要是为方便掩饰其他的全局命令。
在这里插入图片描述
最简单的使用方法就是set key value,例如:set name “张三”。

  • NX:key不存在才设置,否则不设置
  • XX:key存在才设置,否则不设置
  • EX:给变量一个过期时间,例如,使用redis实现手机验证码功能,那么这个过期时间就会派上用场。EX设置的过期时间是以秒为单位的。
  • PX:用PX设置的过期时间是以毫秒为单位的。

在这里插入图片描述
🚀get命令十分简单,就是根据key返回其对应的value即可,如果不存在返回nil。

set name "张三" # 设置一个变量key为name,value为张三
get name       # 获取key为name的变量的value的值

在这里插入图片描述

可以看到,我们在get name的时候,我们想看到的是张三显示在屏幕上,但是显示的却是遗一串16进制的串。这是因为redis是不涉及编码方式的,也就是说在redis看来都是二进制,没有什么编码方式,所以导致中文的显示就会有些问题。
在启动redis客户端的时候,加上 --raw选项,此是redis客户端就会尝试对二进制数据进行解释。
redis-cli --raw。

在这里插入图片描述

redis中变量设置的过期时间是如何检测的

  • 定期删除

redis每次抽取一部分,进行时间的验证,保证抽取的时间足够快。这是因为redis是一个单线程服务的模型,处理任务,扫描任务等都是一个线程来完成的,如果抽取/验证的时间过长可能导致正常的处理请求就会被阻塞住。

  • 惰性删除:

假设某个key的过期时间已经到了,但是redis暂时还没有将它删除,紧接着后面一次访问,正好用到了这个key,那么redis就会将这个key进行删除,然后返回nil。

keys

🚀用于查询当前服务器上匹配的key。通过一些特殊分符号来描述key的模样,匹配这些描述信息的key就会被查询出来。
在这里插入图片描述
在这里插入图片描述

?:匹配任意一个字符
*:匹配任意一个或者多个字符
[a,b,c]:匹配a/b/c中的任意一个
[^a,b,c]:匹配除了a/b/c外的其他字符
[a-e]:匹配一个范围,可以匹配a到e之间的字符,闭区间。

exists

🚀判断某个key是否存在。
在这里插入图片描述
返回key存在的个数,如果只查询一个key,那么如果这个key存在就返回1,如果不存在那么就返回0。如果查询多个key,那么就返回存在的key的个数。
在这里插入图片描述

del

🚀删除指定的key,返回成功删除的key的个数。
在这里插入图片描述
在这里插入图片描述

expire

🚀给key指定一个过期时间。
在这里插入图片描述
在这里插入图片描述

NX:只有当这个key不存在过期时间的时候,才会被设置。
XX:只有当这个key存在过期时间的时候,才会被设置。
GT:只有当设置的新的过期时间比当前这个大,才会被设置。
LT:只有当设置的新的过期时间比当前这个小,才会被设置。

ttl

🚀查看变量key的过期时间。返回的就是还剩的过期时间,如果不存在过期时间就返回-1。
在这里插入图片描述

pexpire

🚀与expire类似,就是设置的过期时间单位是毫秒。
在这里插入图片描述

pttl

🚀与pexpire搭配使用,查看key当前的过期时间。
在这里插入图片描述

type

🚀返回变量的数据类型。
在这里插入图片描述
在这里插入图片描述
这个类型是key对应的value的类型,因为key的类型只能是string。

string数据类型的底层的数据结构

🚀在redis中string这种数据类型,在底层时间的时候采用的是哪种数据结构呢?

底层结构描述
embstr对短字符串的优化,当字符串的长度较小时
int8bytes的int类型,当value的值为整形值的时候
raw正常的字符串实现

操作string类型的常用命令

get&set

🚀在上面已经提到了,这里就不做过多的叙述。

mset&mget

🚀一次可以同时操作多个变量同set和get相比。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
返回多个key所对应的value值,如果key不存在那么就返回nil。
在这里插入图片描述

setnx

🚀相当于对set命令的加强,setnx key value = set key value nx。如果key不存在才会设置这个键值对,否则不会设置这个键值对。
在这里插入图片描述

setex

🚀setex是对set命令和expire命令的集成,在设置一个变量的同时也设置了其过期时间。这里的过期时间默认是以秒为单位的。
在这里插入图片描述

psetex

🚀psetex同setex是相似的,区别就是设置的过期时间是以毫秒为单位的。
在这里插入图片描述

incr&decr

🚀incr要求key对应的value必须是整数,作用就是将value的值变为value+1,然后返回+1之后的值。如果key不存在,那么就创建这个key,并将其value设为0。
在这里插入图片描述
在这里插入图片描述
🚀decr与incr相对应,是将value的值变为value-1。其他细节与incr相类似。
在这里插入图片描述

incrby&decrby

🚀incrby和decrby其实是对incr和decr的加强,它们的作用是将value的值变为value + n/value - n。其他细节与上述类似。
在这里插入图片描述
在这里插入图片描述

incrbyfloat

🚀这条命令与上述的略微有些不同,就是将key对应的value值变为value +/- 某个小数值。当key不存在的时候,就创建这个key并且对应value的值为0。
在这里插入图片描述
在这里插入图片描述

apend

🚀对key对应的value的内容后面追加上一个字符串,如果key不存在,那么效果等同于set key value。返回值为操作后value对应的长度(单位字节)。
在这里插入图片描述
在这里插入图片描述

getrange

🚀获取key对应value的某个区间的字串。区间[start,end]是闭区间,并且单位是字节。
在这里插入图片描述
在这里插入图片描述

setrange

🚀设置key对应value的某一段,如果key不存在,那就创建key,value的前 offset -1 字节会被0字节填充,然后在offset字节开始填充新的字符串。返回值为操作后value对应的长度,单位仍然是字节。
在这里插入图片描述
在这里插入图片描述

strlen

🚀返回key对应value的字符串的长度,单位是字节。如果字符串不存在,那就返回0。
在这里插入图片描述
在这里插入图片描述

string类型的使用场景

作为缓存

🚀redis最常用的一个作用就是作为缓存来减轻关系型数据库,例如:MySQL的压力的。当流量很大时,MySQL可能承受不住这么巨大的流量,导致服务崩溃。redis作为缓存,就是我们在查询某个字段的时候,先去缓存中查询,缓存中不存在再去MySQL中查询,并且在MySQL中查询到此数据之后,还要将此数据放到缓存中,还要为其设置一定的热点事件,防止redis中的数据量过大。

作为计数器

🚀例如,记录某一视频的播放量、点赞数量、评论数量等。但是redis不擅长做数据的统计,像在MySQL中一条SQL语句就能,根据某个字段进行排序。

共享会话

🚀通常,服务器在为客户端提供服务的时候,会为每个客户端创建一个Session对象(通常与Cookies搭配使用),但是在这种分布式系统中,不再是单机架构,我的客户端这次的请求会打到这台服务器上,下次可能就会打到下一个服务器上了,所以将Session存储到某台服务器上是不合理的,通常存储在redis中,为多台服务器共同使用。

手机验证码

🚀手机验证码通常都有一个过期时间,利用redis就很容易实现,在产生一个验证码的时候,在redis中设置这个变量并且设置其过期时间,当过期时间一到redis就会删除这个变量,那么也就意味着这个验证码已经过期了。

http://www.shuangfujiaoyu.com/news/20646.html

相关文章:

  • 厦门php商城网站建设百度指数怎么提升
  • 做企业网站制作搜索引擎大全网址
  • 武汉网站建设排行自己搭建一个网站
  • 武汉模板建站源码优化关键词排名的工具
  • 申请域名空间seo快速排名优化公司
  • 牛商网做网站怎么样html网页制作软件有哪些
  • 上海专业做网站电话百度广告电话号码
  • 公司官网网站搭建企业模板建站
  • 设计个人网站seo排名赚app官网
  • 网站的制作流程做网站价格
  • 便民类网站 做站群seo
  • 怎么做网站搜索引擎利于搜索什么是百度竞价排名
  • 提供手机自适应网站制作全域seo
  • 太仓公司做网站网络销售技巧和话术
  • 多视频网站建设关键词工具
  • 代做ansys网站信阳seo
  • 做装饰画的行业网站整站优化 mail
  • 深圳营销型网站建设公司广州百度提升优化
  • 云南住房与建设厅网站seopeixun com cn
  • 低价网站建设浩森宇特百度小说排行榜完本
  • 赌博网站的建设新东方教育培训机构官网
  • 网友要求你帮助他在某网站做测试谷歌广告联盟官网
  • 衡水商城网站建设新闻投稿平台有哪些
  • 北京网站搭建公司排名南宁seo做法哪家好
  • 营销网站更受用户欢迎的原因是怎样建网站
  • 1元做网站方案云南百度公司
  • 建设银行官方网站登录入口如何做好网络推广
  • wordpress 增大内存seo爱站网
  • 陕西省建设注册中心网站电商的推广方式有哪些
  • 武汉网站建设价格低企业网站模板 免费