Redis的五种常用数据类型的基本使用

基本操作


  1. 信息添加:set key value,例如:set myname jerry
  2. 信息查询:get key,例如:get myname(如果不存在会返回nil)
  3. 清除屏幕信息:clear
  4. 退出客户端quit exit esc键
  5. 帮助命令:help 命令名称 help @组名(组名是string等)

数据类型


Redis五种常用数据类型:

  1. string
  2. hash
  3. list
  4. set
  5. sorted_set

string类型的使用


redis本身是一个Map,所有的数据都采用key:value的形式存储
数据类型指定value的类型,key永远为string类型

string类型也可以作为数字使用,但注意并不是数字

1. 基本操作:

  1. 添加数据:set key value
  2. 获取数据:get key
  3. 删除数据:del key
  4. 添加多个数据:mset key value1 value2 ....,m是Multiple
  5. 获取多个数据:mget key1 key2 ....
  6. 获取字符串长度:strlen key
  7. 追加信息到原始信息后面:append key valueset会覆盖

如果选择单数据操作和多数据操作:
数据在发送时和响应时都需要时间,执行的时间是一样的。数据多的时候选择单数据多次发送会浪费发送和响应时间。

2. string类型数据的扩展操作:

string类型可以当作数字使用
假如存的string是一个纯数字:

  1. 数字加一:incr key

  2. 数字加指定数值:incrby key incrementincrement是指定的数字

  3. 数字加指定的值并且可以是浮点数:incrbyfloat key increment

  4. 数字减少指定数值:decr key decyby key increment

  5. 减浮点数可以用incrbyfloat key 负数
    如果原始数据不能转成数值,或超越了redis 数值上限范围,将报错。
    数字最大值:9223372036854775807

  6. 设置数据具有指定生命周期:setex key seconds value

  7. 毫秒级:psetex key milliseconds value

注意事项:

  1. 返回值可以是成功或失败,分别为0, 1
  2. 也可使结果只0,1,2,3
  3. 数据未获取到:nil 等同于 null
  4. 数据最大存储了:512MB
  5. key的命名规范:表明:主键:主键值:属性
  6. string可以存储json形式,但是不易修改

hash类型的使用


1. 基本介绍:

hash类型:底层使用哈希表结构实现数据存储
在这里插入图片描述
hash存储结构优化

  1. 如果field数量较少,存储结构优化为类数组结构
  2. 如果field数量较多,存储结构使用HashMap结构

2. 基本操作:

  1. 添加数据:hset key field value
  2. 获取数据:hget key field
  3. 获取所有数据:hgetall key
  4. 删除数据:hdel key field1 [...]
  5. 添加多个数据:hmset key field1 value1 field2 value2 .....
  6. 获取多个数据:hmget key field1 field2 ......
  7. 获取哈希表中字段数量:hlen key
  8. 获取哈希表中是否存在指定的字段:hexists key field

3. 扩展操作:

  1. 获取哈希表中所有字段名:hkeys key
  2. 获取哈希表中所有字段值:hvals key
  3. 设置指定字段数值数据增加:hincrby key field increment
  4. 增加浮点数:hincrbyfloat key field increment
  5. 如果不存在添加:hsetnx key field value,存在则不改

list类型的使用


1. 介绍:

数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分

  1. 需要的存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序
  2. list类型:保存多个数据,底层使用双向链表存储结构实现
  3. 因为是双向链表,所以有左右操作

2. 基本操作:

  1. 添加/修改数据:lpush key value1 [value2] .....
  2. 添加/修改数据:rpush key value1 [value2] .....
  3. 获取范围数据:lrange key start stop
  4. 获取指定位置的数据:lindex key index
  5. 获取list长度:llen key
  6. 获取并删除数据:lpop key rpop key

3. 扩展操作:

  1. 规定时间内获取并移除数据:blpop key1 [key2] timeout
  2. brpop key1 [key2] timeout
  3. 说明,这个操作最多执行一次,如果有数据会直接弹出去,没有数据会在指定时间内等待,这段时间如果有数据进入,弹出即可。
  4. 指定时间内取出最后一个元素放入另一个list的头部:brpoplpush source destination timeout
  5. 移除指定数据:lrem key count value,list是可以重复的,从左面数删除多少个此元素

set类型的使用


1. 基本介绍:

  1. 新的存储需求:存储大量的数据,在查询方面提供更高的效率
  2. 需要的存储结构:能够保存大量的数据,高效的内部存储机制,便于查询
  3. set类型:与hash存储结构完全相同,仅存储键,不存储值(nil),并且值是不允许重复的(hash的键不允许)

2. 基本操作:

  1. 添加数据:sadd key member1 [member2] ...
  2. 获取全部数据:smembers key
  3. 删除数据:srem key member1 [member2] ...
  4. 获取集合数据总量:scard key
  5. 判断集合中是否包含指定数据:sismember key member

3. 扩展操作:

  1. 随机获取集合中指定数量的数据:srandmember key [count]
  2. 随机获取集合中的某个数据并将该数据移出集合:spop key [count]
  3. 求两个集合的交集:sinter key1 [key2]
  4. 求两个集合的并集:sunion key1 [key2]
  5. 求两个集合的差集:sdiff key1 [key2]
  6. 求两个集合的交集并存储到指定集合中:sinterstore destination key1 [key2]
  7. 求两个集合的并集并存储到指定集合中:sunionstore destination key1 [key2]
  8. 求两个集合的差集并存储到指定集合中:sdiffstore destination key1 [key2]
  9. 将指定数据从原始集合中移动到目标集合中:move source destination member

sorted_set类型的使用


1. 基本介绍:

  1. 新的存储需求:数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式
  2. 需要的存储结构:新的存储模型,可以保存可排序的数据
  3. sorted_set类型:在set的存储结构基础上添加可排序字段
    在这里插入图片描述

2. 基本操作:

  1. 添加数据:zadd key score1 member1 [score2 member2]
  2. 获取指定部分的数据:zrange key start stop [WITHSCORES]
  3. 排序是按照从小到大,如果反着获取:zrevrange key start stop [WITHSCORES]
  4. withscores展现权重
  5. 删除数据:zrem key member [member] ....
  6. 按条件获取数据:zrangebyscore key min max [WITHSCORES] [LIMIT]
  7. 6是通过权重获取指定权重范围的数据,limit和mysql的分页一个意思,两个参数偏移量记录条数
  8. 反着获取:zrevrangebyscore key max min [WITHSCORES]
  9. 按照排序条件删除数据:zremrangebyrank key start stop
  10. 按照权重条件删除数据:zremrangebyscore key min max
  11. 获取集合数据总量:zcard key
  12. 通过权重获取集合数据数量:zcount key min max
  13. 交集并集操作:zinterstore/zunionstore destination numkeys key [key] .....
  14. destination是存到哪,numkeys是后面跟着几个集合

3. 扩展操作:

  1. 获取数据对应的索引(排名):zrank key member zrevrank key member
  2. score值获取与修改:zscore key member zincrby key increment member
  3. 获取当前系统时间:time
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值