Redis的五种基本数据结构与基本操作

数据结构:

存储的是key-values的形式

key是字符串,values是五种数据结构

  1. String 字符串
  2. Hash 哈希类型(Map格式)
  3. List 列表类型
  4. set 无序集合
  5. Sortedset 有序集合
命令操作
String:

String是Redis中最基本的类型,String类型是二进制安全的,redis的string可以存储任何数据,如图 片、对象等。

  1. 存储:set k-v
  2. 获取:get k
  3. 删除:del k
  4. strlen k 长度
  5. getrange k start end 截取
  6. setrange k index context 替换index开始
  7. mget k1 k2 获取多个
Hash:

hash类型主要用于存储对象,以key field vlaue的形式存储 hash中的value只能为string不能在value中嵌套hash或list等

hash 也有缺点,hash 结构的存储消耗要高于单个字符串,所以到底该使用 hash 还是字符串,需要根据实际情况再三权衡:

  1. 存储:hset 哪一个 k-v 直接也可以k修改(替换)
  2. 获取:
    1. hget 哪一个 k (获取一个)
    2. hgetall 哪一个(获取所有的k-v)
    3. hmget 哪一个 k1 k2 获取多个
  3. 删除:hdel 哪一个 k
  4. hlen 哪一个 获取字段个数
  5. hkeys 哪一个 所有的k
  6. hvals 哪一个 所有的v
  7. hexists 哪一个 k 是否存在
  8. hincrby 哪一个 k int 指定k增加或减少
    1. hincrbyfloat 哪一个 k float 浮点变化
List:
  • 在Redis中可以把list用作栈、队列、阻塞队列
  • list中允许存放重复数据
  • list中存储的数据有序(指进入顺序<分左右>)
  1. 存储 (可加多个)
    1. lpush k-v:左侧加入
    2. rpush k-v:右侧加入
  2. 获取:lrange k start end: 获取范围
  3. 删除:
    1. lpop 哪一个:删除最左边的,并返回
    2. rpop 哪一个:删除最右边的,并返回
  4. lindex 哪一个 index 索引获取数据
  5. ltrim 哪一个 start end 截取 开始和结束的 其他删除
  6. llen 哪一个 获取长度
  7. lrem 哪一个 个数 指定k 指定k删除几个
  8. lset 哪一个 索引 数据 重置数据
  9. linsert 哪一个 after/before oldk newk 向某个元素前或后插入一个元素
set:

不保证顺序,集合不能存放重复数据

  1. 存储:sadd k-vs
  2. 获取:smembers k
  3. 删除:srem:k v
  4. sismember 哪一个 k k是否存在
  5. scard 哪一个 集合大小
  6. smembers 哪一个 查看所有元素
  7. sranmember key 个数 随机抽取几个值
  8. 逻辑操作
    1. sdiff 集合1 集合2 sdiff 集合2 集合1 差集
    2. sinter 集合1 集合2 交集
    3. sunion 集合1 集合2 并集
Sortedset :

该集合是对set集合的改造,在set集合中加入了一个字段值,用于存储排序规则数据,该数据只负责排序不起其他作用

一方面它是一个 set,保证了内部 value 的唯一性,另一方面它可以为每个 value 赋予一个 score 值,用来代表排序的权重。

内部 score 使用 double 类型进行存储,所以会存在小数点精度问题

​ 例如存储:1 xiao 2sen 3 bo

  1. 存储:zadd 哪一个 分数 v 可以多个存放

  2. 获取:

    1. zrange 哪一个 start end
    2. zrange 哪一个 start end withscores
    3. zrevrange 哪一个 start end [ withscores] 从大到小的顺序显示元素信息
  3. 删除:

    1. zrem 哪一个 k 删除哪一个
    2. zremrangebyrank 哪一个 startIndex endIndex 指定索引删除
    3. zremrangebyscore 哪一个 min max 指定大小删除
  4. 增加或减少zset中元素的score值

    1. zincrby key increment value zincrby name 3 xiao
  5. zrangebyscores 哪一个 min(max) max(min) limit start end 查询条件的 前两个数据

  6. zcard 哪一个 获取个数

  7. zcount 哪一个 min max 获取限制的个数

  8. 获取排名 zrank zrevrank

  9. 逻辑操作

    1. zinterstore 新集合 几个集合操作 集合1 集合2 交集 zinterstore aa 2 bb xiao
    2. zunionstore 新集合 几个集合操作 集合1 集合2 并集 zunionstore bb 2 xiao salary
  10. 通用

    1. keys *
    2. type k 键对应的值的类型
    3. del k:删除指定的k-v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值