• 【redis】redis


    一、redis简介:
      1. reids 也是一个 key-value 存储系统,更加确切地说,它已经是一个非关系型数据库。

      2. 关系型。
        SQL语言。
      3. 非关系型。
        key - value。

      4. 数据类型。
        字符串。
        哈希
        列表
        集合
        有序集合。

    二、安装
      linux
        1. 解压
          tar xzf redis-3.2.9.tar.gz
        2. 进入目录
          cd redis-3.2.9
        3. 编译
          make
        4. 启动
          二进制文件是编译完成后在src目录下,通过下面的命令启动Redis服务:
          src/redis-server 或者 cd src && ./redis-server [redis.conf]
        5. 使用
          你可以使用内置的客户端命令redis-cli进行使用:
          src/redis-cli
        6. 配置
          redis.conf
    三、安装 php 扩展
      1. 下载
        s
      2. 解压
        unzip phpredis.zip
      3. 进入目录
        cd /phpredis
      4. 执行 phpize
        /usr/local/bin/phpize
      5. 配置
        ./configure --with-php-config=/usr/local/php/bin/php-config
      6. 编译安装
        make && make install
      7. 修改 php.ini 配置文件
        extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20151012/"
        extension="redis.so";
      8. 重启apache
        /usr/local/apache2/bin/apachectl restart
    四、使用 php 操作
      数据类型
        1. string
          增加
            set('索引','值')    // 设置值。
            setex        // 设置有生命周期的值
            mset('数组')    // 批量设置值
            setnx('索引','值') // 设置新值
          删除
            delete// 删除值。
          修改
            set('索引','值')    // 修改值
            incr('索引')      // 增加值
            incrby('索引','步进值')  // 步进递加值
            decr('索引')      // 递减值
            decrby('索引','步进值')  // 步进递减值
          获取
            get('索引')// 获取值
            mget('数组')// 批量获取值
        2. list,链表,列表。
          增加
            lpush(‘表名’,‘值’)// 从左添加值
            rpush(‘表名’,‘值’)// 从右添加值
          删除
            lpop(‘表名’)// 从左弹出
            rpop(‘表名’)// 从右弹出
            lrem(‘表名’)// 删除几个
          修改
            lset(‘表名’,第几个,‘要修改的值’)// 根据索引修改,从0开始
            lset(‘表名’,负第几个,‘要修改的值’)// 根据索引修改,倒数,从-1开始
            rpoplpush(‘弹出表’,‘填入表’)// 弹出最后一个元素到另一个新的列表中
          查询
            lindex(‘表名’,索引号数字)// 根据索引查询
            lrange(‘表名’,开始索引号,结束索引号)// 从 start 到 end 结束。
            lrange(‘表名’,0,-1)// 获取所有元素
            lsize(‘表名’)// 查询列表中元素的个数
        3. set 无序集合
          增加
            sadd(‘集合名’,‘值1’,‘值2’,‘值n’)// 添加集合
          删除
            srem(‘集合名’,‘值’)// 删除集合中的元素
          修改
            smove(‘集合1’,‘集合2’,‘值’)// 移动集合中的元素到另一个集合中。
          查询
            smembers(‘集合名’)// 获取集合中所有的元素
            ssize(‘集合名’)// 获取集合中元素的个数
            srandmember(‘集合名’)// 从集合中随机获取元素。
            sinter(‘集合1’,‘集合2’)// 交集
            sunion(‘集合1’,‘集合2’)// 并集
            sdiff(‘集合1’,‘集合2’)// 差集
            sismember(‘集合名’,‘值’)// 检测集合中元素是否存在
        4. zset 有序集合
          增加
            zadd(‘集合名’,分数,‘值’)// 添加集合
          删除
            zrem(‘集合名’,‘值’)// 删除集合中的一个元素
          修改
            zincrby(‘集合名’,步进值,‘值’)// 提高分数
          查询
            zrange(‘集合名’,0,-1)// 获取集合中的所有元素
            zrevrange(‘集合名’,0,-1)// 获取集合中的所有元素,倒数。
            zrangebyscore(‘集合名’,起始分数,终止分数)// 根据分数范围获取元素,并取几个。
            zrevrangebyscore('z1', 10, 50, ['withscores'=> true, 'limit'=> [0, 3]]// 根据分数范围获取元素,并取几个。
            zcount(‘集合名’,起始分数,终止分数)//统计分数范围内的元素个数
            zsize(‘集合名’)// 获取集合中元素的个数
            zscore(‘集合名’,‘值’)// 获取某个元素的分数
            zrank(‘集合名’,‘值’)// 获取某个元素的排名,从0开始算起。
            zrevrank(‘集合名’,‘值’)// 获取某个元素排名,倒数
        5. hash 哈希
          增加
            hset(‘哈希名’,‘索引’,‘值’)// 设置值
            hmset(‘哈希名’,数组)// 批量设置值
            hincrby(‘哈希名’,‘索引’,步进值)// 递加值
          删除
            hdel(‘哈希名’,‘值’)// 删除值
          修改
            hset(‘哈希名’,‘索引’,‘值’)// 修改值
          查询
            hget(‘哈希名’,‘索引’)// 获取值
            hmget(‘哈希名’,数组)// 批量获取值
            hgetall(‘哈希名’)// 获取所有值
            hlen(‘哈希名’)// 获取个数
            hkeys(‘哈希名’)// 获取所有键。
            hvals(‘哈希名’)// 获取所有值
            hexists(‘哈希名’,‘索引’)// 检测键名是否存在
        6. 通用操作
          select(数据库编号)// 选择数据库
          flushdb// 清空当前数据库
          flushAll// 清空所有数据库
          set// 设置值
          expire(‘索引’,时间)// 添加生命周期。
          del// 删除值
          ttl(‘索引’)// 获取生命周期
          exists(‘索引’)// 检测键名是否存在
          keys(‘*’)// 获取所有键

          keys(‘name*’)

          keys(‘*name’)

  • 相关阅读:
    论文阅读 | Adversarial Example Generation with Syntactically Controlled Paraphrase Networks
    Textual Entailment(自然语言推理-文本蕴含)
    论文阅读 | Probing Neural Network Understanding of Natural Language Arguments
    BiLSTM-CRF模型理解
    论文阅读 | Text Processing Like Humans Do: Visually Attacking and Shielding NLP Systems
    论文阅读 | Universal Adversarial Triggers for Attacking and Analyzing NLP
    QA 中的对抗攻击和防御
    2010 年 10 年前的网文【我的10年计算机之路】
    IntelliJ 的搜索和全局搜索怎么用
    Spring Data 的 Pivotal GemFire 参考指南前言
  • 原文地址:https://www.cnblogs.com/peilanluo/p/6995062.html
Copyright © 2020-2023  润新知