Redis的数据类型以及常用原生操作

2022-05-13 11:11:47 浏览数 (1)

五种常用类型:

String,List,Set,SortedSet,Hash

1 String(它在Redis中是二进制安全的,这便意味着该类型存入和获取的数据相同。)

-常用操作

  • 赋值 :set name "小明"
  • 查看: get name
  • 修改: set name "小红"
  • 删除: del name
  • 原子增加1: incr num
  • 原子增加n: incrby num n
  • 原子减少1:decr num
  • 原子减少n:decrby num n
  • append key value:拼凑字符串。如果该key存在,则在原有的value后追加该值;如果该key不存在,则重新创建一个key/value
2 Hash(可看成map容器,适合存储对象信息)

-常用操作

  • 单赋值:hset zyh age 18;
  • 单查看:hget zyh age;
  • 多赋值:hmset zyh age 18 height 199;
  • 多查看:hmget zyh age height
  • 全查看:hgetall zyh
  • 修改:同赋值
  • 删除字段:hdel zyh 字段1/字段2名 (即可以删除一个字段和其值也可以删除多个)
  • 删除整个set:del zyh
  • 增加数字:hincrby zyh age 3
  • 判断指定字段是否存在:hexists zyh age
  • 查出set字段个数:hlen zyh
  • 获取所有字段名: hkeys zyh
  • 获取所有key值:hvalus zyh
3 List(列表:从左到右双向链表,按照String元素插入顺序排序)

-常用操作

  • 左添加: lpush mylist aaa[bbb ccc]
  • 右添加: rpush mylist aaa[bbb ccc]
  • 查看第start到end的元素: lrange mylist start 1 end 1
  • 修改:
  • 头部删除:lpop mylist 弹出并返回第一个元素(头元素),若不存在则返回nil
  • 尾部删除:rpop mylist 弹出并返回尾部第一个元素
4 Set(和List类型不同的是,Set集合通过哈希表实现不允许出现重复的元素,)

-常用操作

  • 添加:sadd zyh 111 222
  • 查看Set中所有成员:smembers zyh
  • 修改:
  • 删除指定成员(支持多删除):srem zyh 111[111 222]
  • 判断指定元素是否存在:sismember zyh 111
  • 返回集合中元素数量: scard zyh
  • set集合差集:sdiff A B      sdiffstore destination A B 将A、B相差的成员存储在destination上
  • set集合交集:sinter A B      sinterstore destination A B 将A、B相交的成员存在destination上
  • set集合并集:sunion A B      sunionstore destination A B 将A、B相交的成员存储在destination上
5 ZSET (Sorted Set(通过分数来为集合中的成员进行从小到大的排序))

Sorted-Set和Set类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。它们之间的主要差别Sorted-Set中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。然而需要额外指出的是,尽管Sorted-Set中的成员必须是唯一的,但是分数(score)却是可以重复的。 在Sorted-Set中添加、删除或更新一个成员都是非常快速的操作,其时间复杂度为集合中成员数量的对数。由于Sorted-Set中的成员在集合中的位置是有序的,因此,即便是访问位于集合中部的成员也仍然是非常高效的。事实上,Redis所具有的这一特征在很多其它类型的数据库中是很难实现的,换句话说,在该点上要想达到和Redis同样的高效,在其它数据库中进行建模是非常困难的。 例如:游戏排名、微博热点话题等使用场景。

-常用操作

  • 支持多添加: zadd gread 1 zyh 2 yl
  • 范围查询(start end 为同一个即score成员本身):zrange gread start end 添加元素时候要注意的是如果分数相同,那么后添加的在前面
  • 修改:先删除再添加
  • 删除指定成员:zrem gread zyh
  • 分数在0~100的成员按照分数排名查看:zrangebyscore gread 0 100

底层结构:跳跃表

6 用于计数的HyperLogLog,用于支持存储地理位置信息的Geo

暂不了解

redis中的布隆过滤器

0 人点赞