PHP操作Redis

Redis是一个基于内存的非关系型(键/值对)数据库,PHP将常用的数据缓存至Redis,以提高网站性能。

redis数据类型

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

常用操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);

//string操作
$redis->delete('string1');

$redis->set('string1', 'val1');
$val = $redis->get('string1');
var_dump($val); // val1

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

//list操作
$redis->delete('list1');

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

$val = $redis->rPop('list1');
var_dump($val); // A

//set操作
$redis->delet('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(3){}

//hash操作
$redis->delete('driver1');

$redis->hSet('driver1', 'name', 'mingming');
$redis->hSet('driver1', 'age', 25);
$redis->hSet('driver1', 'gender', 1);
$val = $redis->hGet('driver1', 'name');
var_dump($val); // mingming

$val = $redis->hMGet('driver1', array('name', 'age'));
var_dump($val); // array(2){}

//sort set类型
$redis->delete('zset1');

$redis->zAdd('zset1', 100, 'xiaoming');
$redis->zAdd('zset1', 90, 'xiaohong');
$redis->zAdd('zset1', 93, 'xiaowang');

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

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

其他操作: https://blog.csdn.net/phpfenghuo/article/details/40983541
Redis实战: http://redisinaction.com/index.html