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创建keyset key1 123OK 创建已经存在的key,会覆盖前者 
setnx创建key且在当前的keyname不存在时setnx key1 12310  
setex创建key,且设置过期时间(秒)setex key1 10 123OK 创建已经存在的key,会覆盖前者 
psetex创建key,且设置过期时间(毫秒)psetex key1 1000 123OK   
mset创建多个keymset key1 123 key2 456OK   
msetnx创建多个key,且当前key不存在时msetnx key1 123 key2 45610  
get返回key的valueget key1valuenil  
mget返回多个key的valuemget key1 key2多个valuenil  
del删除keydel key110  
exists检查是否存在该keyexists key110  
keys查找符合条件的keykeys key1/keys key*/keys *key name 名字后加*,符合*前的名字都进行搜素 
rename修改key名rename key1 key2OKno such key修改已经存在key,会将已存在的进行覆盖 
renamenx修改key名,仅当新key名不存在时

renamenx 

key1 key2

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

perpire

key1 1000

10  
expireat设置key过期时间(时间戳)

expireat

key1 1293810000

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

另外的库存在相同的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将存储的数字+1incr key1返回添加后的数字 非数字报错,带小数点报错
incrby将存储的数字,按指定的数字添加incrby key1 2返回添加后的数字 非数字报错,带小数点报错
incrbyfloat将存储的数字,按指定的浮点型数字添加incrbyfloat key1 0.5返回添加后的数字 整数报错
decr将存储的数字-1decr 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 123OK  
Lpop移除掉左边第一个元素,并且返回lpop ll 原list的第一个元素nil 
Rpop移除掉右边尾部第一个元素,并且返回rpop ll 原list的最后一个元素nil 
Blpop设置时间(秒),移除掉左边第一个元素,并且返回key和该元素blpop ll 5key和元素 设置5秒内没有结果,则返回 nil和时间
Lindex通过索引查询元素lindex ll 0元素  
llen返回list长度llen ll返回长度  
ltrim指定区间保留元素,其它的移除ltrim ll 0 1OK  


五、字符串集合(sets)

底层是一个无序的集合

命令描述例子成功失败备注
sadd添加一个或多个元素sadd set 11 22返回长度 相同的key会覆盖
smembers返回全部的元素smembers set全部元素  
sismember判断元素存在sismember set 1110 
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设置hsethset hkey1 cc 12310设置已经存在的field,会覆盖前者
Hsetnx设置hset,在当前fi字段不存在下hsetnx hkey1 cc 12310 
Hmset一次设置多个字段Hmset hkey1 cc 123 bb 456OK  
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返回相加后的  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值