redis (二) 五种数据类型

目录

一、简单介绍

二、key 常用命令

三、字符串(strings)

四、字符串列表(lists)

五、字符串集合(sets)

六、有序字符串集合(sorted sets)

七、哈希(hashes)


一、简单介绍

学习参考

https://blog.csdn.net/liqingtx/article/details/60330555

https://www.runoob.com/redis/redis-keys.html

redis 是C语言编写的、支持网络交互的、可基于内存也可持久化,key:value的存储系统,其中value支持五种数据类型

字符串(strings)、字符串列表(lists)、字符串集合(sets)、有序字符串集合(sorted sets)、哈希(hashes)

二、key 常用命令

命令 描述 用法 成功 失败 备注  
set 创建key set key1 123 OK   创建已经存在的key,会覆盖前者  
setnx 创建key且在当前的keyname不存在时 setnx key1 123 1 0    
setex 创建key,且设置过期时间(秒) setex key1 10 123 OK   创建已经存在的key,会覆盖前者  
psetex 创建key,且设置过期时间(毫秒) psetex key1 1000 123 OK      
mset 创建多个key mset key1 123 key2 456 OK      
msetnx 创建多个key,且当前key不存在时 msetnx key1 123 key2 456 1 0    
get 返回key的value get key1 value nil    
mget 返回多个key的value mget key1 key2 多个value nil    
del 删除key del key1 1 0    
exists 检查是否存在该key exists key1 1 0    
keys 查找符合条件的key keys key1/keys key*/keys * key name   名字后加*,符合*前的名字都进行搜素  
rename 修改key名 rename key1 key2 OK no such key 修改已经存在key,会将已存在的进行覆盖  
renamenx 修改key名,仅当新key名不存在时

renamenx 

key1 key2

1 0    
expire 设置key过期时间(秒) expire key1 10 1 0    
pexpire 设置key过期时间(毫秒)

perpire

key1 1000

1 0    
expireat 设置key过期时间(时间戳)

expireat

key1 1293810000

1 0    
persist 移除key过期时间 persist key1 1 0    
TTL 返回key过期剩余时间(秒) ttl key1 剩余秒数 -1    
PTTL 返回key过期剩余时间(毫秒) pttl key1 剩余毫秒数 -1    
dump 序列化key dump key1 序列化的值 nil    
scan 迭代key scan 0 输出keyname      
move 将key移动到另一个数据库 move key1 1 1 0

另外的库存在相同的key会失败,

select 1,移动到相应的库,0 代表最初的这个

 

三、字符串(strings)

  • 数据最大存储量
    • 512MB
  • 数值计算最大范围( java中的long的最大值)
    • 9223372036854775807
命令 描述 例子 成功 失败 备注
getrange 字符串截取,下标0开始 getrange key1 2 3 返回下标2到3 的内容 返回空字符串  
setrange 替换到字符串,从某个下标开始后的内容 setrange key1 2 "xxx" 返回替换后的字符串长度   超出长度的自动补位空格
append 在原字符串后面拼接内容 append key1 "xxx" 返回拼接的长度   不存在的key,将创建并设置key-value
strlen 返回字符串长度 strlen key1 返回长度 0  
incr 将存储的数字+1 incr key1 返回添加后的数字   非数字报错,带小数点报错
incrby 将存储的数字,按指定的数字添加 incrby key1 2 返回添加后的数字   非数字报错,带小数点报错
incrbyfloat 将存储的数字,按指定的浮点型数字添加 incrbyfloat key1 0.5 返回添加后的数字   整数报错
decr 将存储的数字-1 decr key1 返回相减后的数字    
decrby 将存储的数字,按指定的相减 decrby key1 2 返回相减后的数字    


四、字符串列表(lists)

底层数据结构为双向链表,插入快,查询快,操作类似于栈

最大存储232个vlaue

命令 描述 例子 成功 失败 备注
Lpush 向左边头部添加一个或多个值 lpush ll 123 456 返回长度    
Rpushx 向已存在的Key,左边头部添加一个或多个值 lpushx ll 123 456 返回长度 0  
Rpush 向右边尾部添加一个或多个值 rpush ll 123 456 返回长度    
Rpushx 向已存在的Key,右边尾部添加一个或多个值 rpushx ll 123 456 返回长度 0  
lset 指定list索引修改 lset ll 0 123 OK    
Lpop 移除掉左边第一个元素,并且返回 lpop ll  原list的第一个元素 nil  
Rpop 移除掉右边尾部第一个元素,并且返回 rpop ll  原list的最后一个元素 nil  
Blpop 设置时间(秒),移除掉左边第一个元素,并且返回key和该元素 blpop ll 5 key和元素   设置5秒内没有结果,则返回 nil和时间
Lindex 通过索引查询元素 lindex ll 0 元素    
llen 返回list长度 llen ll 返回长度    
ltrim 指定区间保留元素,其它的移除 ltrim ll 0 1 OK    


五、字符串集合(sets)

底层是一个无序的集合

命令 描述 例子 成功 失败 备注
sadd 添加一个或多个元素 sadd set 11 22 返回长度   相同的key会覆盖
smembers 返回全部的元素 smembers set 全部元素    
sismember 判断元素存在 sismember set 11 1 0  
scard 获取集合长度 scard set 返回长度    
spop 随机移除一个元素 spop set 返回移除元素 nil  
srem 移除一个或多个成员 srem set 11 22 返回移除数量    
sscan 迭代元素 sscan set 返回全部元素    


六、有序字符串集合(sorted sets)

有序集合,每个元素带有一个score进行定位


七、哈希(hashes)

一种键值对结构,相当于key-value 再套一层keyValue

hash 可以存储 232 - 1 个键值对

命令 描述 例子 成功 失败 备注
Hset 设置hset hset hkey1 cc 123 1 0 设置已经存在的field,会覆盖前者
Hsetnx 设置hset,在当前fi字段不存在下 hsetnx hkey1 cc 123 1 0  
Hmset 一次设置多个字段 Hmset hkey1 cc 123 bb 456 OK    
Hget 获取hkey的字段的值 hget hkey1 cc 输出单个值 nil  
Hgetall 获取hkey的所有字段和值 hgetall hkey1 输出全部字段和值    
Hmget 获取多个字段值 hmget hkey1 cc bb 输出多个值 nil  
Hkeys 获取hkey的字段 hkeys hkey1 输出全部的字段    
Hvals 获取hkey的所有值 hvals hkey1  输出全部的值    
Hscan 迭代hkey所有字段和值 hscan hkey1 0 输出全部字段和值    
Hlen 获取hash字段数量 hlen hkey1  数量    
Hincrby 对字段的进行相加,按指定的整数 hincrby hkey1 cc 2 返回相加后的    
Hincrbyfloat 对字段的进行相加,按指定的小数 hincrbyfloat hkey1 cc 0.4 返回相加后的    

猜你喜欢

转载自blog.csdn.net/qq_37203082/article/details/112734546