• Redis 基础


    基本类型

    String,hash,list,set,sorted set(zset)

    安装

    按照README的安装步骤进行

    架构原理

    redis单进程,单线程,并发很多的请求,如何变得很快的呢??

    当我们使用多个redis-cli进行连接的时候,我们首先对通过redis-cli连接到了linux kernel,linux kernel自带一个epoll的调用,我们在使用redis服务端去调用linux的系统内核,调用epoll。

    啥是epoll?

    在linux kernel中,我们使用client,可以使用socket直接连接kernel。早期,我们可以使用read fd  <unistd.h>读取文件描述符,线程/进程使用 read fd去读取linux kernel(因为这时候socket这个时期是阻塞的(blocking)),整个计算机,并没有实时处理打来的线程,这是早期的bio时期。内核有一个跃迁,变化的过程,socket中的fd可以是nonblock的。如果有1000fd,代表用户进程轮询用1000次kernel的成本问题。于是内核更新新的调用,叫做select,实现多路复用的NIO。之后又进行了一次迭代更新,我们kernel更新mmap,我们系统开放了一个虚拟的共享空间,可以供用户调用。

     

    mmap?

    在mmap的共享空间,我们使用红黑树+链表(共享空间并非零拷贝,零拷贝是sendfile),mmap还在kafka中有实际运用

     主要命令

    1.redis-cli -p port -n dn   指定端口连接,指定库名称

    • get K 
    • set K V 
    • select dn  (这边有16个库默认)

    2.使用help进行查询(自带补齐功能)

    @通用组  

    比如查询string 

    help @string可以查询

    3.使用type查看类型

    type K

    4.set是string类型的,所以使用set的全部为string

    5.incr和decr可以加减int的编码类型

    i

     6.我们可以使用object encoding k1查看到k1是int类型

     7.incrby K V  将K加一个V值的整型

     8.incrbyfloat K V 将K加一个V值的浮点型

     9.strlen K 查看K的字符长度

     10. 启动的时候加上redis-cli --raw可以知道长度

     11.getset k1 V 发送更新并返回旧值

     12.mget 和 mset 可以设置多个值和获取多个值

     13.setbit

  • 相关阅读:
    小技巧如何将网页中的长表格快速翻译并插入博客园中
    常见错误问题 chrome自带google翻译失效
    操作系统厂家汇总
    那些优秀的常用软件们烧录器
    网络协议分析 dhcp
    流行应用程序与tcp\udp服务
    那些优秀的网站 免费在线格式转换
    事务及事务隔离级别
    python实现PDF指定页面旋转
    python实现WPS文件转PDF
  • 原文地址:https://www.cnblogs.com/littlepage/p/11437743.html
Copyright © 2020-2023  润新知