Redis五大基本Value数据结构类型: String,List,Hash,Set,ZSet
1:String
String 是Redis 里面最简单的一种数据结构。在Redis中,所有的Key都是字符串,存储对象时也是需要进行序列化操作,但是不同的key对应的value则具备不同的数据结构,我们所说的五种不同的数据结构主要指的时value 的数据类型不同
Redis 中的字符串时动态字符串,内部时可以修改的 像Java中的StringBuffer 它采用分配冗余空间的方式来减少内存的频繁分配。在Redis内存结构中 ,一般实际分配的内存会大于需要的内存,当字符串小于1M的时候 ,扩容都是在现有的空间基础上加备,扩容每次扩容1M 空间,最大512M
相关命令:
###set,get, : 使用set命令就是存值 : 使用get命令通过key
append
:使用 append 命令时 如果key 已经存在则直接在对应的value后进行追加值,否则就会创建新的key
decr
使用 decr命令可以实现对value的减 1 操作 (前提时value是一个数字),如果Value不是数字,就会报错,如果Value不存在 默认值时0 在默认的基础上减一
decrby
:和 decr命令类似 但是可以设置 步长(步长 每次递减多少)
getrange
:getrange 命令可以用来返回key对饮给的Value的子串,类似于Java中 的subString方法 -1: 表示 倒数第一个截至 -2:表示倒数第二个截至 -3:表示倒数第三个截至 ......
getset
:getset获取并更新某一个key
incr
:表示对value自增
incrby
:表示对value自增 同事可以设置步长
incrbyfloat
和incrby类似,但是自增的步长,可以设置为浮点数
mget和mset
:批量获取和批量存储
ttl
:使用ttl查看key的有效期 -1:永不过期 -2:过期
setex
: 使用setex命令给key同时设置value 也同时设置过期时间(时间单位:S)
psetex
和setex类似 知识 过期时间单位不同(时间单位:MS)
setnx
默认情况下 set命令会覆盖自己已经存在的key setnx则不会
msetnx
批量设置 set命令会覆盖自己已经存在的key setnx则不会
setrange
覆盖一个已经存在key的value。
strlen
:查看字符串长度
2:String( BIT)
在Redis中,字符串都是以二进制的方式存储的 。而BIT命令就是 对二进制进行操作的。例如:set k1 a ,a 对应的ASCII码时97 ,97转换成二进制时01100001;
getbit
获取key对应的value在offset处于bit值
setbit
修改key对应的value在offset处于bit值 例如将 a(01100001) 修改成 b(01100010)
bitcount
统级二进制数据中1个数(不是 转换成 二级制中01100010 0-3 而是value字符串中 0-3 1的个数 )