Redis基础学习之String类型

举报
多米诺的古牌 发表于 2022/02/21 11:56:19 2022/02/21
【摘要】 1.string类型的常用方法1.1 set方法1.1.1 set key value nxnx是在key不存在的时候才去操作,相当于只能新增操作1.1.2 set key value xxxx是在key存在的时候才能去操作,相当于只能更新操作1.2 meset和mget设置和取出多个值,可以通过mset和mget指令进行执行1.3 append追加字符串,可以通过append指令进行执行1...

1.string类型的常用方法

1.1 set方法

1.1.1 set key value nx

nx是在key不存在的时候才去操作,相当于只能新增操作

1.1.2 set key value xx

xx是在key存在的时候才能去操作,相当于只能更新操作

1.2 meset和mget

设置和取出多个值,可以通过mset和mget指令进行执行

1.3 append

追加字符串,可以通过append指令进行执行

1.4 getrange 

获取范围内的字符串,可以通过getrange key 加上 正向索引或者反向索引进行截取,正向所以是从0开始计算,反向索引是从-1开始计算

1.5 setrange

设置范围内的字符串,可以通过setrange key 加上正向索引或者反向索引进行操作,如果需要设置的值超过原有索引后面的值会全部覆盖掉。

1.6 strlen

获得字符串的长度,可以通过strlen进行获取

1.7 getset

根据key设置新值,在重新设置新的value值成功后会显示直接老的值,这样可以节省通信成本的浪费,只发出一次通信请求完成修改老值并且设置新值的操作。

1.8 msetnx

msetnx是可以设置多个值,并保持原子性(其中有一个失败则都失败),mget是获取多个key的值

2.Redis二进制安全机制

Redis是采用二进制安全机制,即从sorket中获取数据是获取数据的字节流,因为Redis是面向多语言使用的,每种语言定义的类型都有所不同。

比如在存储数值的时候,Redis还是会按照一个字符一个字节进行存储,而不是将数据当成数值进行存储。

再举个栗子,处理中文的时候,在utf-8下一个中文字符是占三位,在gbk编码下是占两位,在直接使用redis-cli指令的时候会获得/x../x...这样的十六进制的值,但加上  -- raw参数后会根据Redis配置好的编码集进行转码,会自动转为对应的汉字,但是编码集在设置的时候切换过与当前配置的编码集不同会出现乱码的情况,比如utf-8和gkb定义汉字位数不同,所以通过--raw参数自动转码就会不同。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。