Redis五种基本数据类型及用法之String

Redis一共有五种数据类型,分别是String、List、Set、Hash、Zset,下面分别来对五种基本数据类型进行介绍。
String 是 Redis 里边最最简单的一种数据结构。在 Redis 中,所以的 key 都是字符串,但是,不同的
key 对应的 value 则具备不同的数据结构,我们所说的五种不同的数据类型,主要是指 value 的数据类
型不同。
Redis 中的字符串是动态字符串,内部是可以修改的,像 Java 中的 StringBuffffer,它采用分配冗余空间
的方式来减少内存的频繁分配。在 Redis 内部结构中,一般实际分配的内存会大于需要的内存,当字符
串小于 1M 的时候,扩容都是在现有的空间基础上加倍,扩容每次扩 1M 空间,最大512M。
1.set,get-set就是给一个key赋值,get就是获取一个key的value。
getrange-用来返回key对应的value的子串,这有点类似于 Java 里边的 substring。这个命令第二个和第三个参数就是截取的起始和终止位置,
其中,-1 表示最后一个字符串,-2 表示倒数第二个字符串,以此类推。
setrange-覆盖一个已经存在的 key 的value,如果偏移量超过了value的长度,则中间会自动用0补齐。
getset-获取并更新某一个key。
mset、mget-批量设置和获取。
ttl-查看key的有效期,-1表示永远不会过期。
setex-在给 key 设置 value 的同时,还设置过期时间,单位秒。
psetex-和 setex 类似,只不过这里的时间单位是毫秒。
setnx-默认情况下, set 命令会覆盖已经存在的 key,setnx 则不会。
msetnx-批量设置,其中某一个key存在,则整体操作失败。
2.append-如果key存在,则直接在对应的value后追加值,否则就创建新的键值对。
3.decr-对 value 的减 1 操作(前提是 value 是一个数字),如果 value 不是数字,会报错,如果
value 不存在,则会给一个默认的值为 0,在默认值的基础上减1。
decrby-和 decr 类似,但是可以自己设置步长,该命令第二个参数就是步长。
4.incr-给某一个key的value自增。
incrby-给某一个 key 的 value 自增,同时还可以设置步长。
incrbyfloat-和 incrby 类似,但是自增的步长可以设置为浮点数。
5.strlen-查看key对应的value的长度 。
6.在 Redis 中,字符串都是以二进制的方式来存储的。例如 set k1 a,a 对应的 ASCII 码是 97,97 转为
二进制是 01100001,BIT 相关的命令就是对二进制就行操作的。
getbit-key 对应的 value 在 offffset 处的 bit 值。
setbit-修改 key 对应的 value 在 offffset 处的 bit 值。比如说a的二进制是01100001,b的二进制是01100010,那么我只需将第6位改成1,第7位改成0即可。
bitcount-统计二进制数据中1的个数。比如说bitcount k1 0 3,这里的0和3这两个偏移量指的是字符串的下表位置。
关于Redis中String数据类型的介绍就到此为止,有什么不足的地方希望大家多多指正。本篇内容的介绍基于公众号江南一点雨的视频课程进行总结的,大家有兴趣的话可以关注一下,个人觉得课程讲解的还是非常详细的。
posted @ 2020-08-30 23:12  天有多高我有多骚  阅读(340)  评论(0)    收藏  举报