zoukankan      html  css  js  c++  java
  • 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上浪费时间
    • 单线程避免了线程切换和竞争产生的消耗

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

  • 相关阅读:
    ref:使用Dezender对zend加密后的php文件进行解密
    MongoDB-Replica Set Deployment Architecture
    MongoDB-Replication Replica Set Arbiter
    MongoDB-Replication Secondary Members
    MongoDB Replication
    MongoDB 备份方法
    scrapy 框架
    MongoDB 指定应用上下文数据模型
    MongoDB 树形模型
    MongoDB 文档模型关系
  • 原文地址:https://www.cnblogs.com/SimonZ/p/14860679.html
Copyright © 2011-2022 走看看