• Redis全局命令


    Redis全局命令

    Redis的一个客户端,支持多个操作系统

    https://gitee.com/qishibo/AnotherRedisDesktopManager

    全局命令

    查看所有键

    • keys命令会遍历所有键,时间复杂度O(n),线上保存了大量的键时,禁止使用
    keys *
    

    查看当前数据库中键的总数

    • 它时查询Redis内置的变量,的时间复杂度是O(1)
    dbsize
    

    查看某个键是否存在

    exists key
    ----------------
    > EXISTS key
    0
    > EXISTS java
    1
    
    • 如果存在返回1,不存在返回0

    删除键

    del key [key...]
    -----------------
    > EXISTS java
    1
    > del java
    1
    > EXISTS java
    0
    -----------------
    > set a 1
    OK
    > set b 2
    OK
    > set c 3
    OK
    > set d 4
    OK
    > del a b c d
    4
    
    • 无论值是什么数据结构,del都可以删除
    • 返回删除成功的个数

    键过期

    对键添加过期时间,超时自动删除键。

    expire key seconds
    -----------------
    > set hello world
    OK
    > expire hello 10
    1
    > ttl hello
    3
    > ttl hello
    -2
    
    • 给hello设过期时间为10秒
    • ttl key 查看键的过期时间;返回-2,表示键已被删除

    键的数据结构

    type key
    ---------------
    > set a b
    OK
    > type a
    string
    > rpush mylist a b c d
    4
    > type mylist
    list
    > type not_exist_key
    none
    

    数据结构与内部编码

    Redis的5种数据结构,string,list,hash,set,zset,它们是提供给用户直接使用的数据结构。

    每种数据结构内部都有不同的实现方式,也就是内部编码。比如string的内部编码有raw,int,embstr;list的内部编码有quicklist,linkedlist,ziplist。这样设计一方面方便改进内部编码,另一方面可以为不同的场景提供不同的实现。

    查看内部编码

    object encoding key
    -------------------
    > object encoding mylist
    quicklist
    > object encoding a
    embstr
    

    单线程架构

    【专题todo Redis的单线程架构】

    【专题todo IO多路复用】

    单线程架构+IO多路复用

    Redis是单线程的,所以每条命令从客户端到达服务端不会立刻被执行,而是进入一个队列中,然后被逐个执行,不会存在并发的问题。

    单线程为什么还这么快?

    • 纯内存访问
    • 非阻塞IO,Redis使用epoll作为多路复用的实现,加上自身的事件处理模型将epoll的连接,读写,关闭都转换为事件,不在网络IO上浪费时间
    • 单线程避免了线程切换和竞争产生的消耗

    单线程架构的问题就是如果某个命令执行时间过长,会造成其他命令的阻塞,是要重点关注的。

  • 相关阅读:
    Linux查看文件夹大小
    mysql按照天或小时group分组统计
    eclipse可以调试但是无法打开网页,提示一直在加载
    自定义spring valid方式实现验证
    UniCode编码表及部分不可见字符过滤方案
    shiro中移除jsessionid的解决方案
    Apache Shiro去掉URL中的JSESSIONID
    shiro开启realm
    shiro注解@RequiresPermissions多权限任选一参数用法
    linux 复制粘贴
  • 原文地址:https://www.cnblogs.com/SimonZ/p/14860679.html
Copyright © 2020-2023  润新知