• Redis之路


    前言:数据库是一切数据的源头,因此我们没有逃避的理由

    (一) 什么是redis?

      redis是nosql(not noly sql)产品中最为出色的一种非关系型的数据库,主要包括以下几种存储结构:String,list,set,hash,sorted set,为高并发而生,其中读的速度为110000次/秒,写的速度是81000次/秒,

    (二) 安装方式

      Linux : yum install epel-release(如果错误应该执行这个步骤,没有就跳过)  ----->   yum -y install redis ----->启动服务同时执行redis-cli

      Windows: https://pecl.php.net/package/redis 下载扩展包放入到PHP中开启扩展就行(注意要查看是不是nts/ts)下载相应的版本

    (三) 数据类型的详解 

      1.String(字符数据类型)

    get 键名      //获取对应键名的值 如果不存在返回null
    set 键名 值 //设置对应键名的值
    set 键名 值 [过期时间/秒]   //设置超时的时间

      2.hash(哈希表)数据类型

    hset 哈希表名的名称  字段(key) 字段值(value) [超时时间/s]    //设置一个值

    hget 哈希表的名称 字段名称(key name) //获取一个值

    hmset 哈希表的名称 字段(key) 字段值(value)..... //一次性设置多个值也可以用这个修改数据

    hgetall 字段(key) //获取这个键名的所有值即这一条数据

      3.list(链表数据类型)

    lpush 链表的名称(栈名称) 值   //这个和入栈的模式相关,先进看不出,后进先出

    rpush 链表的名称(队列) 值 //这个和队列相关,先进先出,后进后出

    lrange 链表的名称 索引开始位置 索引结束位置(-1 代表获取到全部) //这个是查询相关的操作

    lpop 链表名称 //弹出(栈或者队列)头部的元素,并且删除,常用这个进行秒杀的功能

    rpop 链表名称  //弹出(栈或者队列)尾部的元素,并且删除,常用这个进行秒杀的功能

    ltrim 链表名称 开始的位置 结束的位置 //让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除

      4.set 集合数据类型(无序 )

    sadd 集合的名称   集合的元素1....    //新增集合元素

    smembers 无序集合的名称 //获取集合中的值

    sdiff 作为标准的集合名称 求差集的集合名称 //求两个集合之间的差集

    sinter 集合名称1 集合名称2 //求两个集合的交集

    sunion 集合名称1 集合名称2 ... //求两个集合的并集

    scard 集合名称 //求集合的元素的个数

    srem 集合名称 元素名称 //用于删除无序集合中的元素,在社交网络开发中用于黑名单功能

        5.zset集合数据类型(有序集合)

    zadd 集合名   序号 元素      // 向有序集合中添加元素。如果该元素存在,则更新其顺序。

    zrange 集合名称 开始位置(索引) 结束位置(索引)(-1 获取全部) //按序号升序(由小到大)获取有集合中的内容

    zrevrange 集合名称 开始位置(索引) 结束位置(索引)(-1 获取全部) //按序号降序(由大到小)获取有序集合中的内容


    (四) 通用操作

      

    keys *    //获取数据库中的所有的数据 

    exists 键名 //判断键名是否存在

    select index(0-9) //选择数据库的空间段

    del 键名 //删除指定的键名

    type 键名 //查找键名对应的数据类型

    expire 键名 有效期(秒数) //设置超时的时间

    ttl 键名 //查看一个 key 的过期剩余时间

    (五) redis中的密码登录设置

      

    1. 打开redis.conf 
    
    2.查找到foobared 
    设置成requirepass 密码 

    3.登录
    redis-cli -a 密码

    (六) redis持久化设置

      分类:rdb(默认,在间隔固定时间进行保存),aof(修改就保存)

      设置成aof模式:

    1.打开redis.conf
    
    2.修改
        appendonly no 变成yes
    
    3.保存数据的文件名
        appendfilename "文件路径"

    (七) PHP中使用redis操作

      使用前必须确认开启了redis扩展为php

    1.php连接redis数据库
        $redis = new Redis();
        $redis->connect(ip地址,端口);
        $redis->auth(密码);
    2.操作字符数据类型
      $redis->set(key,value) //设置值
      $redis->set(key) //获取值

    3.操作hash类型
      $redis->hSet(key,字段名,value); //设置值
      $redis->hGet(key,字段名); //获取值
    4.操作set无序集合
      $redis->sAdd(key,value); //设置值
      $redis->sMembers(key) //获取值

    5.操作zset有序集合
      $redis->zAdd(key,index,value); //设置值
      $redis->zRange(key,0,-1) // 升序排序
      $redis->zRange(key,0,-1,true) // 让键与值互换
    6.操作链表list
      $reids->lpush(key,value) //设置按照栈的方式入列
      $reids->rpush(key,value) //设置按照队列的方式入列
      $redis->lpop() //从头部出列并且删除
      $redis->rpop() //从尾部出列并且删除
      $redis->lRange(key,start,end) //读取链表的值
    IT这条路,当你懂得越多的时候,那么你不懂的也就会越多了.
  • 相关阅读:
    【转载】实体框架之领域驱动实践(七):模型对象的生命周期 仓储
    【转载】实体框架之领域驱动实践(四):存储过程 领域驱动的反模式
    【转载】实体框架之领域驱动实践(五):聚合
    VC6.0下配置boost库使用正则表达式(解决问题)
    boost regexpre 用于MFC时出现 'boost' : is not a class or namespace name错误
    VC技巧:在程序的状态栏中实现进度条
    正则表达式 boost regexp的安装
    最近在做实验希望实现基于JNI技术在Java中使用 Slex.dll
    利用BCGControlBar 实现状态条显示Progressbar
    正则表达式30分钟入门教程
  • 原文地址:https://www.cnblogs.com/learningPHP-students2018/p/10208071.html
Copyright © 2020-2023  润新知