Redis从入门到精通

1
2
3
4
5
6
7
8
9
Redis
├─初识redis
│ ├─Redis概念
│ ├─Redis安装
│ └─Redis的数据类型
└─操作redis
├─PHP的redis拓展安装
└─PHP操作redis的五种类型

什么是Redis

  • Redis是远程的
  • Redis是基于内存的
  • Redis是非关系型数据库

Redis的应用场景

  • 缓存
  • 队列:List的push、pop
  • 数据存储

Redis的安装

安装环境

  1. 服务器环境:Linux / CentOS release 6.8

    cat /etc/redhat-release#查看系统版本

  2. 下载源码安装,Redis版本(2.8.13 http://download.redis.io/release)

  3. 预装软件(gcc,tcl)

服务端安装使用

  1. tar -xf redis-2.8.13.tar.gz
  2. cd redis-2.8.13 后 make
  3. make install (/usr/local/redis-server)
  4. redis-server启动

客户端的安装

Redis的五种数据类型

数据类型 存储的值 读写能力
String 可以是字符串、整数或浮点,统称为元素 对字符串操作对整数类型加减
List 一个序列集合且每个节点都包好了一个元素 序列两端推入、或弹出元素修剪、查找或移除元素
Set 各不相同的元素 从集合中插入或者删除元素
Hash 有key-value的散列组,其中key是字符串,value是元素 按照key进行增加删除
Sort Set 带分数的score-value有序集合,其中score为浮点,value为元素 集合插入,按照分数范围查找

PHP的Redis拓展安装

PHP操作Redis

文档地址

Redis类的命名空间是根

phpredis的命令和参数基本和redis.io中的实际命令对应

连接redis

$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);

String操作

$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);
$redis->delete("string1");
$redis->set("sting1","val1");
$val = $redis->get("string1");
var_dump($val);

$redis->set("string1",4);
$redis->incr("string1",2);
$val = $redis->get("string1");
var_dump($val);

list类型操作

$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);
$redis->delete("list1");

$redis->lPush("list1","A");
$redis->lPush("list1","B");
$redis->lPush("list1","C");

$val = $redis->rPop("list1");
var_dump($val);

set类型操作

$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);
$redis->delete("set1");

$redis->sAdd("set1","A");
$redis->sAdd("set1","B");
$redis->sAdd("set1","C");
$redis->sAdd("set1","C");

$val = $redis->sCard("set1");
var_dump($val);//3

$val = $redis->sMembers("set1");
var_dump($val);//array

hash类型操作

$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);
$redis->delete("driver1");

$redis->hSet("driver1","name","mingming");
$redis->hSet("driver1","age",25);
$redis->hSet("driver1","sex",1);

$val = $redis->hGet("driver1",'name');
var_dump($val);

$val = $redis->hMGet("driver1",array("name","age"));
var_dump($val);

sort set类型操作

$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);
$redis->delete("zset1");

$redis->zAdd("zset1",100,"xiangming");
$redis->zAdd("zset1",90,"xianghong");
$redis->zAdd("zset1",93,"xiangwang");

$val = $redis->zRange("zset1",0,-1);//低到高
var_dump($val);

$val = $redis->zRevRange("zset1",0,-1);//从高到低
var_dump($val);