|
|
什么是Redis
- Redis是远程的
- Redis是基于内存的
- Redis是非关系型数据库
Redis的应用场景
- 缓存
- 队列:List的push、pop
- 数据存储
Redis的安装
安装环境
服务器环境:Linux / CentOS release 6.8
cat /etc/redhat-release#查看系统版本
下载源码安装,Redis版本(2.8.13 http://download.redis.io/release)
预装软件(gcc,tcl)
服务端安装使用
- tar -xf redis-2.8.13.tar.gz
- cd redis-2.8.13 后 make
- make install (/usr/local/redis-server)
- 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);