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这条路,当你懂得越多的时候,那么你不懂的也就会越多了.
原文地址:https://www.cnblogs.com/learningPHP-students2018/p/10208071.html