一、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. 上海月薪 1w 和家乡月薪 5000 你选择哪?

    如题,这是我在知乎上看到的一个热门话题--要现在的我来回答的话,毫无疑问会选择上海,即便月薪只有 5000 也去,还要趁早去. 有读者可能会质问我:"你之前不是说在三线城市洛阳工作很爽吗?怎 ...

  2. git密令使用

    git密令是一种非常好用的代码版本管理工具,相比SVN,Sourcetree 使用起来复杂,主要是没有汉化包,当你使用熟练时,其实也是非常简单的,逼格高. 具体使用如下: 情景一:你只有远程库,没有本 ...

  3. Linux 文件系统及 ext2 文件系统

      linux 支持的文件系统类型 Ext2:     有点像 UNIX 文件系统.有 blocks,inodes,directories 的概念. Ext3:     Ext2 的加强版,添加了日志 ...

  4. 菜鸟对java和Go的理解

    1.go对比java go通过结构体嵌套+接口实现类似面向对象中的继承和多态.个人认为尤其是go的接口抓住了多态的本质.而Go提倡的面向接口的思想也可能使得架构上更加解耦. 2.关于Go不要通过共享内 ...

  5. vue 阻止冒泡 @click.stop=

    vue 阻止冒泡 @click.stop= vue中处理冒泡标准姿势 事件修饰符 Vue.js 为 v-on 提供了事件修饰符,修饰符是由点开头的指令后缀来表示的.这些事件修饰符主要有以下几个: st ...

  6. Java 注解简介

    一,什么叫注解 用一个词就可以描述注解,那就是元数据,即一种描述数据的数据.所以,可以说注解就是源代码的元数据.比如,下面这段代码: 1 2 3 4 @Override public String t ...

  7. 【opencv系列02】OpenCV4.X图像读取与显示

    一.读取图片 opencv中采用imread() 函数读取图像 imread(filename, flags=None)     filename 图片的路径     flags 图像读取方式 ● c ...

  8. Html的总结(待完善)

    Html的总结(待完善) 框内文字 Placeholder 框内文字(例如:请输入密码) A标签 link 未点击的A标记 visited 点击过的A标签 hover 放置鼠标变颜色 active 点 ...

  9. 网络安全从入门到精通(第一章-1)Web服务器通信原理

    本文内容 IP地址 域名 端口 HTTP协议 从访客角度看网页浏览器流程 常见服务器系统 路径 Web容器 常见的Web容器 !!!多动手,多动手,只看只听是不行的!!! 1,IP地址:就是计算机在互 ...

  10. Jenkins的制品管理

    Jenkins的制品管理 制品是什么? 也叫产出物或工件.制品是软件开发过程中产生的多种有形副产品之一.广义的制品包括用例.UML图.设计文档等.而狭义的制品就可以简单地理解为二进制包.虽然有些代码是 ...