• 第二章redis数据类型的使用和介绍


    redis数据类型的使用

    list  列表

    最多可以存2的32次方减1 个

    元素组成列表

      用来存储多个有序的字符串。

    redis中,可以对列表俩端插入(push)和(pop)弹出,还可以获得制定范围的元素列表,获取指定索引下表的元素等

    元素可以重复

    命令操作

    操作类型 操作

    添加 rpush    lpush   linsert

    lrange    lindex  llen

    删除   lpop    rpop  lrem  ltrim

    修改   lset

    阻塞操作    blpop   br pop

    string字符串

    1.缓存功能

    2.计数

    3.共享session(会话)

    4.限速

    hash哈希

    还叫字典或关联数组

    哈希类型是指键值本身就是一种键值对结构

    key value

    value={field,value}

    字符串键值对

    key value

    name tom

    哈希类型

    user: 1 : name tom

    哈希模式命令格式

    1.hset key field(区域) value

    2.hget key value

    3.hdel key field 删除(可以删除多个)

    4.hlen key 计算field的个数

    5.批量设置或获取field-value

    hmset key field value value .....

    hmget key filed value

    6.hkeys key 获取所有的键

    7.hgetall key 获取所有field

    8.hincrby key field 自增

    hincrbyfloat key field

    9.hstrlen key value

    内部编码

    ziplist(压缩列表)

    当以下两种情况使用ziplist

    1.当哈希类型元素个数小于hash-max-ziplist-entries (512个)

    2.所有值都小于hash-max-ziplist-value(64字节)

    hashtable(哈希表)

    关系型数据库与哈希类型不同

    1.哈希类型是稀疏的

    完全结构化

    2.关系型数据库可以做复杂的查询(子查询左查询右查询)

    列表list

    有序 由元素组成 2的32次方减一

    1.列表中元素有序插入新元素后其他元素下标顺延

    2.列表中的元素可以重复

    命令

    添加 rpush lpush linsert

    查看 lrange lindex llen (0到-1就是查看全部)

    删除 lpop rpop lrem ltrim

    修改 lset

    阻塞操作 blpop brpop

    查看

    获取指定范围内的元素列表

    lrange key start stop

    获取列表指定索引下标的元素

    lindex key index

    llen

    删除

    lpop key 左侧删除

    rpop key 右侧删除

    删除指定的元素

    lrem key count value

    count > 0 代表从左往右删除最多删除count的个数

    count < 0 代表从右往左删除

    count=0 代表删除所有

    按照索引范围修剪列表

    ltrim key start end

    修改

    修改指定索引下标的元素

    lset key index newvalue

    阻塞操作

    blpop key key ... timeout

    brpop key key .... timeout

    linkedlist (链表)

    lpush+lpop=stack(栈)

    lpush+rpop=queue(列队)

    lpush+ltrim=capped callection(有限集合)

    lpush+brpop=message queue (消息列队)

    集合set

    集合内部命令

    添加元素

    sadd key element .....

    删除元素

    srem key element ....

    计算元素个数

    scard key

    判断元素是否在集合中

    sismember key element

    随机从集合返回指定个数的元素

    srandmember key count

    从集合随机弹出元素

    spop key

    获取所有元素

    smember key

    集合间的命令

    交集

    sinter key ...

     sinterstore user:a_b:sinter user:a user:b

    并集

    sunion key ...

    sunionstore

    差集

    sdiff key ....

    差集之间,有相对于的概念

    内部编码

    intset(整数集合):当集合的元素都是整数并且元素的个数小于set-max-intest-entries(512个)

    超过 512 默认更改为hashtable

    hashtable(哈希表):当集合类型无法满足intset的条件时,redis

    会使用hashtable

    使用场景

    标签tag

    有序集合 zset)

    有序集合相对于哈希,列表/集合有一点的陌生,它有序

    不能重复

    数据结构 能否重复 是否有序 有序的实现方式

    列表 1 1 下表索引

    集合 0 0 没有

    有序集合 0 1 分值

    zadd 创建有序集合,添加成员以及分数

    zcard key' 查看成员个数

    zscore key member  member :成员的名字)

    计算成员的排名

    zrank key member  从低到高

    zrevrank key member    从高到低

     zrem  key member    删除成员

    zrincrby key 增加的分数   成员名字

    返回指定排名范围的成员   

    zrange key start end (索引下角标 )   withscores  从低到高的排名

    zrevrange key start end  (索引下角标 )   withscores  从高到底

     zrangebyscore key min max    返回指定分数范围的成员  withscores  : 分数,可加选项

     zrevrangebyscore key max min    删除指定的排名内的升序元素

    zremrangebyrank key start end

    zcount key min max     返回指定分数范围的成员

    zremrangebyrank key min max   删除 指定排名的成员

    zremrangebyscore key min max withscores    删除指定分数范围的成员

     zremrangebyscore l (4 +inf    //删除 不包括4分 ,以及4分以上的所有人

    inf :无穷大或者无穷小

    ( : 不包含

    zinterstore 交集的名字  个数 有序集合1 有序集合2

     zunionstore  交集的名字  个数 有序集合1 有序集合2

    有序集合内部编码

    ziplist(压缩表)

    skiplist(跳跃列表)

     zremrangebyscore key min max

    有序集合交集

    zinterstore  destination  numkeys key

    交集       名字       数字

    [weight]  [aggregate sum | min max ]

    destination

    numkeys

    numkeys destination  numkeys key   withscores  

    [weight]  [aggregate sum | min max ]

    withscores  :显示出分数

    内部编码

    Ziplist   压缩里列 ,当有序集合的元素个数小于 zset-max-ziplist-entries (128个)

    同时每个元素的值都小于 zset-max-ziplist-value (64字节)

    Skiplist :跳跃表

    使用场景  

    排行榜系统

    按照时间 ,播放量

    添加用户的点赞数

    zadd user:ranking:2018_01_08

    21 zhangyi

    Zrem rankingL:2018_01_08 zhangyi

    zrevrangebyrank user  user: ranking :2018_01_08 0 9

    Hgetall user:info

  • 相关阅读:
    解决GIT可视化工具Sourcetree拉取失败问题
    记录常用Git命令
    vue开发移动端使用rem的适配方案
    使用HBuilderX实现打包vue项目成app
    使用vue+webpack从零搭建项目
    整理最近面试问道的问题
    模块化之seaJs学习和使用
    理解Object.defineProperty的作用
    vue生命周期
    使用gulp编译sass
  • 原文地址:https://www.cnblogs.com/bingpo-blade/p/9234137.html
Copyright © 2020-2023  润新知