• Redis介绍


    Redis

    redis简单介绍

    https://redis.io/
    
    • 1
    • 什么是redis?

      remote dictionary server, 远程字典服务. 顾名思义, redis的基础存储方式是键对值, 是一种常用的非关系型数据库.

    • redis的特点

      • 内存操作, 相对于传统数据库从硬盘上读取数据速度, 快了一个数量级.

      • redis服务是单线程工作模式, 不会产生一般的并发问题.

        在我们使用多线程或者多进程去进行一般IO操作会发生读写冲突. 如果我们的多线程和多进程程序去读取redis消息队列当中的值时, 由于redis是单线程工作模式, 读事件和写事件都会按顺序执行, 避免了并发问题.

    redis的安装

    • 服务端

      • windows

        https://github.com/microsoftarchive/redis
        
        • 1
      • ubuntu

        apt-get install redis-server
        
        • 1
      • mac

        brew install redis
        
        • 1
    • 客户端

      • windows

        • redis-desktop
      • ubuntu

        # 没有图形界面
        apt-get install redis-cli
        
        • 1
        • 2
      • mac

        medis
        
        • 1
      • python连接

        pip install redis
        
        • 1
        import redis
        
        # 指定使用的database
        redis_con = redis.Redis(host='localhost', port=6379, db=2)
        
        • 1
        • 2
        • 3
        • 4

    redis的数据类型和CRUD

    通过redis-cli命名进行连接
    
    redis-cli -h localhost -p 6379
    
    # 选择使用的数据库
    C:\Users\TuNan>redis-cli
    127.0.0.1:6379> select 2
    OK
    127.0.0.1:6379[2]>
    
    # 查看当前库下所有的key
    127.0.0.1:6379[2]> keys *
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • String

      • Create

        set key value
        
        • 1
      • Retrieve

        get key
        
        • 1
      • Update

        set key  value
        
        • 1
      • Delete

        del key
        
        • 1
    • Hash

      • Create

        hset 变量名 key value
        
        • 1
      • Retrieve

        hget 变量名 key
        
        • 1
      • Update

        hset 变量名 key value
        
        • 1
      • Delete

        hdel 变量名 key
        
        • 1
    • List

      • Create

        lpush 变量名 value
        
        • 1
      • Retrieve

        • 通过索引取值

          lindex 变量名 索引值
          
          lindex 'list_test' 1
          
          • 1
          • 2
          • 3
        • 通过索引取一定范围的值

          lrange 变量名 start end
          
          lrange 'list_test' 0 2
          
          • 1
          • 2
          • 3
      • Update

        linsert 变量名 before[after] pivot value
        
        linsert 'list_test' before 'a' 'b'
        
        • 1
        • 2
        • 3
      • Delete

        • rpop

          从右侧, 也就是list的末尾移除一个元素并返回

          rpop 'list_test'
          
          • 1
        • lpop

          从左侧, 也就是头部移除一个元素并返回

        • lrem

          删除一定数目的元素

          lrem 变量名 删除个数,  删除元素
          
          • 1
    • Set

      • Create

        sadd 变量名 value
        
        • 1
      • Retrieve

        • 获取集合中的所有成员

          smembers 变量名
          
          • 1
        • 判断当前元素是否在集合当中

          sismember 变量名 value
          sismember 'set_test' 2
          
          • 1
          • 2
        • 返回随机数

          srandmember 变量名 随机返回的数量
          srandmember 'set_test' 2
          
          • 1
          • 2
      • Update

      • Delete

        spop 变量名
        
        • 1
    • Zset

      有序集合

      可以通过有序集合完成一个复杂的优先级队列

      • create

        zadd 变量名 分数 value
        
        • 1
      • Retrieve

        • 返回当前成员数

          zcard 'zset_test'
          
          • 1
        • 获取一定分数区间的成员数

          zcount 变量名 min_score max_score
          
          • 1
        • 通过一定分数区间获取值

          zrangebyscore 变量名 min_score max_score
          
          zrangebyscore 'zset_test' 2 1
          
          • 1
          • 2
          • 3
      • Update

        • 加分

          zincrby 变量 加分值 value
          
          zincrby 'zset_test' 1 'b'
          
          • 1
          • 2
          • 3
      • Delete

        • 根据排名移除成员

          zremrangebyrank 变量名 start stop
          
          zremrangebyrank 'zset_test' 1 2
          
          • 1
          • 2
          • 3
        • 根据分数移除成员

          zremrangebyscore 变量名 min_score max_score
          
          zremrangebyscore 'zset_test' 2 2
          
          • 1
          • 2
          • 3
  • 相关阅读:
    单元测试与自测
    【云原生 | Kubernetes 实战】03、手把手教你基于YAML文件运行pod应用
    使用STM32微控制器进行 Blink LED
    vue自动跳转模拟登陆
    Bootstrap-媒体类型
    软文推广中媒体矩阵的优势在哪儿
    VOC和COCO数据集讲解
    Python语言学习实战-内置函数sorted()的使用(附源码和实现效果)
    软注意力和硬注意力的对比
    【UE5 C++基础 06】角色控制基础
  • 原文地址:https://blog.csdn.net/m0_57713054/article/details/128045436