zoukankan      html  css  js  c++  java
  • redis基础

    redis小知识

    • 单进程模型:对读写等事件的响应是通过对epoll函数的包装来做到的。
    • 默认16个数据库切片,下标从0开始,初始默认使用0号库,各个库之间相互隔离,可以使用move key db_index来完成key的移动。
    • dbsize查看当前库的所有key数量,flushdb清空当前库key,flushall清空所有库key。
    • 统一密码管理,即所有库都使用同一密码。
    • 相关key的操作:keys *用于查看当前库所有key值,expire key seconds用于设置key过期时间,ttl key查看key还有多少秒过期(-1永不过期, -2已过期),type key查看key的类型。

    String类型

    • redis的string类型是二进制安全的,即可以包含任何数据(比如图片或者序列化的对象)。一个字符串的value最多可以容纳521M数据
    • 相关操作:
      1. set设置值;get获取key对应值;del删除key;append追加key对应的value;strlen获取key对应value长度。
      2. incr key按1递增;decr key按1递减;incrby key num按指定数值递增;decriby key num按指定数值递减。
      3. getrange key start end获取指定区间的值;setrange key start new_value设置置顶区间范围的值,从开始下标替换新值长度的新值。
      4. setex key seconds value设置时指定超时时间;setnx key value当不存在时设值,存在时则无效  5. mset key1 val1 key2 val2 ...批量设值;mget key1 key2 ...批量获取;msetnx key1 val1 key2 val2 ...当有一个不存在时,则该命令不生效。

    List类型

    • List类型为单值多value,类似于java中的List链表,但它是双向列表,两边都可以插入且效率都极高。
    • 相关常用操作:
      1. lpush key val1 val2 ...设置一个list,从左边插入,对应的右边插入有rpush,利用该特性可以将list作为堆栈使用;lrange key start end遍历一个list,其中索引支持负数反向。
      2. lpop key从左边移除一个元素并返回,对应的有rpop
      3. lindex key index按照索引下标获取元素;llen key获取list长度
      4. lrem key num value删除指定数量的value值的元素;ltrim key start end截取指定范围内的元素列表(边界均包含),并赋值给该key;
      5. rpoplpush key1 key2将源列表的一个元素出栈并向目标列表入栈;lset key index value将列表指定位置的值替换;linsert key before/after value new_value 在指定列表的指定value之前/之后插入新值。

    Set类型

    • 常用操作:
      1. sadd key val1 val2 ...向set中插入元素,若重复会自动剔除;smembers key获取set所有元素;sismember key value判断指定value是否为set元素,1是0否。
      2. scard key获取set中元素个数;srem key value删除指定元素;srandmember key num在set中随机获取指定个数的元素;spop key随机出栈;smove key1 key2在key1中某个值移动到key2中。
      3.  sdiff key1 key2求key1相对于key2的差集(只在key1中,不在key2中);sinter key1 key2求二者的交集(二者均存在);sunion key1 key2求二者的并集。

    Hash类型

    • 小记 key-value模式不变,但是value是一个键值对。
    • 常用操作:
      1. hset key field val为hash对象属性赋值;hget key field获取hash对象指定属性的值;对应的批量操作为hmset key field1 val1 field2 val2 ...hmget key field field2 ...hgetall key获取hash对象全部键值对;hdel key field删除hash对象指定属性;hlen key获取hash对象的属性个数;
      2. hexists key field判断指定属性名是否存在;hkeys key获取hash对象的所有属性名;hvals key获取所有属性对应的值;hincrby key field num对指定属性对应的值做递增操作,hincrbyfloat key field num浮点数递增;hsetnx key field value不存在时再添加属性。

    Zset(sorted set)类型

    • 常用操作:
      1. zadd key score1 element1 ...添加元素(带分数);zrange key start end获取所有zset元素,zrange key start end withscores获取zset所有元素,并展示分数,对应的有zrevrange从大到小;zrangebyscore key (start_score (end_score *limit start num*获取指定分数范围的元素,括号表示不包含,limit在结果中从指定下标截取指定个数元素,对应的有zrevrangebyscore从大到小;
      2. zrem key element删除指定元素;zcard key获取element元素个数;zcount key start_score end_score统计指定分数范围内的元素个数;zrank key element按分数从低到高排名后获取指定元素的排名(从0开始),zrevrank key element按分数从高到低排名后获取指定元素的排名(从0开始);zscore key element获取指定元素的分数值;
  • 相关阅读:
    关于浏览器cookie的详解
    浏览器渲染帧
    Vue3中关于diff的优化
    JS报错 Cannot set property 'display' of undefined问题
    vue选项卡 ,循环数据点击改变class,并初始循环中的第一个为选中状态class
    Nuxt中引入elementUI
    jq 获取节点 改变元素class的显示、隐藏
    vue监听滚动条
    Nuxt中引入iconfont图标
    vue导航点击切换 2.0
  • 原文地址:https://www.cnblogs.com/dbutil/p/8507896.html
Copyright © 2011-2022 走看看