• 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
  • 相关阅读:
    js逆向之浏览器环境补充
    BUG的跟踪管理
    一、Zabbix入门
    【Linux】权限理解
    参加了个算法比赛,真是一言难尽啊
    Windows配置python(anaconda+vscode方案)的主要步骤及注意事项
    PHP7的新特性
    云原生之深入解析如何使用Devtron简化K8S应用开发
    nmap之nse脚本简单学习
    B. Applejack and Storages
  • 原文地址:https://blog.csdn.net/m0_57713054/article/details/128045436