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

家居行业网站建设网站建设中的咨询服务

家居行业网站建设,网站建设中的咨询服务,大数据智能营销系统,管家婆进销存管理系统目录 setgetmsetmgetsetnx、setex、psetexincr、incrby、decr、decrby、incrbyfloatappendgetrangesetrangestrlen字符串类型编码方式总结 Redis - String Redis存储的字符串,是直接按二进制方式存储,不会做任何编码转换,存的是什么&#xff…

目录

  • set
  • get
  • mset
  • mget
  • setnx、setex、psetex
  • incr、incrby、decr、decrby、incrbyfloat
  • append
  • getrange
  • setrange
  • strlen
  • 字符串类型编码方式
  • 总结

Redis - String

Redis存储的字符串,是直接按二进制方式存储,不会做任何编码转换,存的是什么,取出来的就是什么

set

set命令的完整体

set key value [expiration EX seconds |PX milliseconds] [NX|XX]

Redis语法格式说明:

[] 表示一个独立的单元,表示可选项,|表示或者

ex 表示设置超时时间,单位是秒,px也是设置超时时间,单位是毫秒

set key value ex 10

相当于

set key value ex 10
expire key 10

NX表示:如果key不存在才设置,如果key存在就不设置(返回nil)

XX表示:如果key存在才设置,如果key不存在就不设置(返回nil)

另外,如果key不存在,会创建新的键值对,如果key存在,会把旧的value覆盖掉,可能会改变原来的数据类型,key设置的ttl也会失效

使用案例:
在这里插入图片描述

get

get只支持字符串类型的value,如果value是其他类型,使用get获取会出错
在这里插入图片描述

mset

一次设置多个key的值

mset key value [key value...]

在这里插入图片描述

时间复杂度O(N),N指的是命令中key的个数

mget

一次获取多个key的值,如果value不是字符串类型的,返回nil

mget key [key...]

在这里插入图片描述

时间复杂度O(N),N指的是命令中key的个数

setnx、setex、psetex

setnx:不存在才能设置,存在则设置失败

setnx key value

在这里插入图片描述

setex:设置value的同时,设置过期时间(单位秒)

setex key seconds value

在这里插入图片描述

psetex:设置value的同时,设置过期时间(单位毫秒)

psetex key milliseconds value

在这里插入图片描述

incr、incrby、decr、decrby、incrbyfloat

  • incr:针对value+1,key对应的value必须是整数(64位范围内),返回值是 +1 之后的值
incr key

在这里插入图片描述

如果key不存在,就把这个key的value当做0

在这里插入图片描述

  • incrby:针对value+n
incrby key increment

在这里插入图片描述

如果key不存在,就把这个key的value当做0

在这里插入图片描述

n也可以是负数

在这里插入图片描述

  • decr:针对value-1,key对应的value必须是整数(64位范围内),返回值是 -1 之后的值
decr key

在这里插入图片描述

如果key不存在,就把这个key的value当做0

在这里插入图片描述

  • decrby:针对value-n
decrby key increment

在这里插入图片描述

  • incrbyfloat:针对value +小数或者value-小数

在这里插入图片描述

​ 这个命令没有减法版本,但是可以加负数,并且使用Redis进行的计数操作一般是整数

上述时间复杂度都是O(1),多个客户端针对同一个key进行incr操作,不会引起线程安全问题

append

如果key已经存在,并且value是String类型,这个命令会将value追加到原有的value后面。如果key不存在,效果相当于set,返回值是追加后的字符串的长度

append key value

在这里插入图片描述
在这里插入图片描述

append返回值的单位长度是字节,Redis不会对字符编码做处理,设置的是什么,获取的就是什么

在这里插入图片描述

Xshell终端默认是utf8,所以在终端输入汉字之后也是按照utf8编码的,在utf8中,一个汉字通常是3个字节的,所以在获取的时候,也是utf8编码的,那么如何让Redis获取key对应的value能够显示中文?在启动的时候加上 --raw即可

redis-cli --raw

在这里插入图片描述

getrange

返回key对应的String的子串,由start和end确定(左闭右闭),使用负数表示倒数。-1表示倒数第一个字符,-2表示倒数第二个字符,以此类推如果超过了范围会根据String长度自动调整(下标从0开始)

getrange key start end

在这里插入图片描述

如果value是中文,切出来的可能是不完整的汉字

在这里插入图片描述

setrange

将字符串中的子串进行替换

setrange key offset value

offset表示偏移量,表示从第几个字节开始进行替换,结束的位置是看value的长度,返回值是替换后新的字符串的长度

在这里插入图片描述

如果针对中文字符串进行setrange,可能会出问题

如果key不存在,也是可以进行setrange操作,只不过会把offset之前的内容填充成0x00

在这里插入图片描述

strlen

获取字符串的长度,单位是字节,如果key不存在返回0,如果对应的key的value不是String类型的则会报错

strlen key

在这里插入图片描述

字符串类型编码方式

字符串类型的内部编码方式有3种,包括int、embstr、raw

int:8个字节的长整型

embstr:小于39个字节的字符串

raw:大于39个字节的字符串

Redis会根据当前值的类型和长度动态的决定使用哪种编码方式

在这里插入图片描述

总结

命令效果时间复杂度
set key value [key value…]设置 key 的值是 valueO(k), k 是键个数
get key获取 key 的值O(1)
del key [key …]删除指定的 keyO(k), k 是键个数
mset key value [key value…]批量设置指定的 key 和 valueO(k), k 是键个数
mget key [key …]批量获取 key 的值O(k), k 是键个数
incr key指定的 key 的值 +1O(1)
decr key指定的 key 的值 -1O(1)
incrby key n指定的 key 的值 +nO(1)
decrby key n指定的 key 的值 -nO(1)
incrbyfloat key n指定的 key 的值 +nO(1)
append key value指定的 key 的值追加 valueO(1)
strlen key获取指定 key 的值的⻓度O(1)
setrange key offset value覆盖指定 key 的从 offset 开始的部分值O(n),n是字符串长度,通常视为O(1)
getrange key start end获取指定 key 的从 start 到 end 的部分值O(n),n是字符串长度,通常视为O(1)
http://www.yayakq.cn/news/355348/

相关文章:

  • 郑州市建设工程造价信息网站一个人开发一个网站需要多久
  • 网站建设的相关技术方案网站托管服务适用于哪种类型的网站
  • 简单的做图网站海安县建设局网站
  • php源码网站后台面密码忘了在哪能找回密码云南小程序开发制作公司
  • wordpress 手工升级关键词优化ppt
  • 四大商业网站网站建设贰金手指下拉壹玖
  • 关于做情侣的网站的图片网站访问工具
  • 企业网站的建设有哪些经典问题坪山网站建设信息
  • 企业网站制作费做分录网络营销的特点中任何时间任何地点体现的是
  • 我的专业网站建设策划书如何创建小程序
  • html5网站抓取建设网站的意义作用是什么
  • 深圳建站公司有推荐的公司吗小程序电商平台排名
  • 网站建设seo策略互联网软件有哪些
  • 福州网站大全个人网站备案怎么做
  • 广州做网站新锐比格设计网站官网
  • 空间站建设乐清网站设计制作
  • 进qq空间上面没有网站长治电商平台网站
  • 帝国cms网站搬家教程ps网页素材
  • 阿里云网站备案要多久厦门外发加工网
  • 备案做电影网站公司网站域名查询
  • 网站内容模板重庆免费建站
  • 接入商 济南网站建设珠宝网站建商台北
  • 河北省建设厅官方网站 官网住房和城乡建设部网站办事大厅
  • 济南外贸网站制作9377游戏盒子
  • 免费个人网站怎么制作东莞建设工程招标网
  • 重庆官方网站查询系统滨州哪里有做网站的
  • 代理国外网站flash是怎么做网站的
  • 做网站的流程是怎么样的对网站建设和维护好学吗
  • 湖州城市投资建设集团网站河南住房和城乡建设厅网站资质
  • 网站做哪家最专业广州建设工程合同司法解释