一、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. CTR学习笔记&代码实现1-深度学习的前奏LR->FFM

    CTR学习笔记系列的第一篇,总结在深度模型称王之前经典LR,FM, FFM模型,这些经典模型后续也作为组件用于各个深度模型.模型分别用自定义Keras Layer和estimator来实现,哈哈一个是 ...

  2. 创建和存储 cookie

    在这个例子中我们要创建一个存储访问者名字的 cookie.当访问者首次访问网站时,他们会被要求填写姓名.名字会存储于 cookie 中.当访问者再次访问网站时,他们就会收到欢迎词. 首先,我们会创建一 ...

  3. Spring 多数据源配置(转)

    转载自:https://www.cnblogs.com/digdeep/p/4512368.html 同一个项目有时会涉及到多个数据库,也就是多数据源.多数据源又可以分为两种情况: 1)两个或多个数据 ...

  4. 雅奇880、990、小土豆调用EPX Studio 编译的DLL的编程方法~

    在雅奇990中,使用“外部文件-调用链接库文件”命令实现与EP的通信,例如: 1.调用链接库文件(取项目文件信息() + '资源文件\Project1.dll', 'Unit1.rpas:Result ...

  5. 性能测试工具LoadRuner你所不知道的内幕

    谈到性能测试,大家一定会联想到Jmeter和LoadRunner,这两款工具目前在国内使用的相当广泛,主要原因是Jmeter是开源免费,LoadRunner 11在现网中存在破解版本.商用型性能测试工 ...

  6. Linux命令进阶篇-文件查看与查找

    上一篇的博客对于Linux如何在不同目录下跳转和查看目录下内容做出了总结,主要靠cd和ls,很常见也很实用.但是你看到目录下面那么多不同花花绿绿的文件,心里是不是痒痒,是不是想进去一探究竟,有办法! ...

  7. 读书笔记——商广明《Nmap渗透测试指南》

    一 Nmap基础学习 1.简介及安装 Nmap是一款由C语言编写的.开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具.软件名字Nmap是Ne ...

  8. mysql数据库设计文档-导出字段设计

    navicat 是我一直在使用的一个数据库操作工具,非常方便快捷.如果没有可用navicat可以留言邮箱我直接发您. 今天来介绍一下使用navicat导出数据库字段设计.废话不多说,先看导出效果. 查 ...

  9. Java中内部类和静态内部类的区别

    内部类和静态内部类 示例 public class OuterClass { private int numPrivate = 1; public int numPublic = 2; public ...

  10. Java 中,如何对日期进行加减操作

    今天在做项目时,遇到了对时间的加减进行操作的需求,根据传入的日期字符串,操作参数("+","-"),加数(要操作的天数),对日期进行加减操作,经查询资料,自己写 ...