一、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’)

【redis】redis的更多相关文章

  1. 【NoSql】Redis

    [NoSql]Redis 一. 文档 1. 官网 2. Windows 安装包 3. C# Driver a. ServiceStack.Redis 最新版本是收费的 b. StackExchange ...

  2. 【python】redis基本命令和基本用法详解

    [python]redis基本命令和基本用法详解 来自http://www.cnblogs.com/wangtp/p/5636872.html 1.redis连接 redis-py提供两个类Redis ...

  3. 【redis】redis的bind配置

    原文:[redis]redis的bind配置   在配置文件redis.conf中,默认的bind 接口是127.0.0.1,也就是本地回环地址.这样的话,访问redis服务只能通过本机的客户端连接, ...

  4. 【redis】redis基础命令学习集合

    写在前面 Redis是一个高速的内存数据库,它的应用十分广泛,可以说是服务端必学必精的东西.然而,学以致用,无用则无为.学了的东西必须反复的去用,去实践,方能有真知.这篇文章记录了我在redis学习过 ...

  5. 【redis】redis应用场景,缓存的各种问题

    如果你还不知道redis的基本命令与基本使用方法,请看 [redis]redis基础命令学习集合 缓存 redis还有另外一个重要的应用领域——缓存 引用来自网友的图解释缓存在架构中的位置 默认情况下 ...

  6. 【Redis】Redis Sentinel 哨兵模式搭建

    Redis Sentinel介绍 Redis Sentinel是Redis的官方高可用性解决方案 Redis Sentinel为Redis提供高可用性.实际上,这意味着使用Sentinel可以创建一个 ...

  7. 【Redis】redis各类型数据存储分析

    一.简介和应用 Redis是一个由ANSI C语言编写,性能优秀.支持网络.可持久化的K-K内存数据库,并提供多种语言的API.它常用的类型主要是 String.List.Hash.Set.ZSet ...

  8. 亿级流量场景下,大型缓存架构设计实现【1】---redis篇

    *****************开篇介绍**************** -------------------------------------------------------------- ...

  9. 【Redis】Redis cluster集群搭建

    Redis集群基本介绍 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施installation. Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行 ...

  10. 【转】Redis学习---哈希结构内存模型剖析

    [原文]https://www.toutiao.com/i6594624365906625032/ 概述 在前文<Redis字符串类型内部编码剖析>之中已经剖析过 Redis最基本的 St ...

随机推荐

  1. NoVNC API 文档翻译

    原文地址:https://github.com/novnc/noVNC/blob/master/docs/API.md 时间:2019-05-21     noVNC API The interfac ...

  2. jupyternotebook安装

    本篇阅读目录 一.Jupyter notebook环境安装 二.爬虫介绍 回到顶部 一.Jupyter notebook环境安装 1.Anaconda 以及 安装步骤 Anaconda指的是一个开源的 ...

  3. IPv6 时代如何防御 DDoS 攻击?

    在互联网世界,每台联网的设备都被分配了一个用于标识和位置定义的 IP 地址.20 世纪 90 年代以来互联网的快速发展,联网设备所需的地址远远多于可用 IPv4 地址的数量,导致了 IPv4 地址耗尽 ...

  4. centOS7python版本升到3

    我们使用Python源代码编译的方式安装python3. 一.安装必要工具 yum-utils ,它的功能是管理repository及扩展包的工具 (主要是针对repository) $ sudo y ...

  5. ASP.NET MVC5实现芒果分销后台管理系统(一):系统结构设计,集成AutoMapper,Log4net

    在构思完系统思维脑图后,小墨回到家中,便摩拳擦掌开始了开发工作.要想迅速完成系统开发,前期系统设计和准备尤其重要,因为小墨做过太多大大小小的业务系统,准备工作也是十分顺利. 系统结构 整个系统工程结构 ...

  6. 还记得第一个看到的Flutter组件吗?

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 MaterialApp 在学习Flutter的过程中我们第 ...

  7. Java字符串转List

    List<String> result = Arrays.asList(str.split(","));

  8. Natas1 Writeup(查看页面源码)

    Natas2: 提示密码就在本页,但右键被禁用,可以使用F12或者抓包查看元素得到flag. flag:ZluruAthQk7Q2MqmDeTiUij2ZvWy2mBi 常用的查看源码方法:右键查看. ...

  9. SpringMVC框架——集成RESTful架构

    REST:Representational State Transfer 资源表现层状态转换 Resources 资源 Representation 资源表现层 State Transfer 状态转换 ...

  10. System.Text.Json 序列化对所有 JSON 属性名称使用 camel 大小写

    asp.net core3.x 新增的序列号接口System.Text.Json 序列化时,如果要对所有 JSON 属性名称使用 camel 大小写 将 JsonSerializerOptions.P ...