PHP Redis操作

redis数据类型:

  1. String 存储的值为字符串、整数、浮点数统称为元素,对字符串操作、对整数类型加减。

  2. List一个有序序列集合,序列两端推入、弹出元素、修剪、查找或移除元素。

  3. Set 多个唯一元素组成的集合,从集合中插入或者删除元素或者查找某个元素是否在集合中。

  4. Hash 多个key-value组成的散列组,key一定是字符串value是元素,按照key进行增加删除操作,hash key必须是唯一的。

  5. Sort Set 带分数的score-value唯一有序集合,其中score为浮点,value为元素.带分数元素的插入与删除,按照分数进行范围查找,按照排名进行查找的操作。

 

PHP Redis操作

  • String类型:

set命令

set string1 test

get string1

test

对整型的增加与减少操作

set string2 4

get string2

4

incr string2

get string2

5

decrby string2 2

get string2

3

List类型

有序列表允许从序列的左边和右边进行推入或弹出元素。

lpush list1 12 左边推入元素

lpush list1 13

因为队列先入先出

rpop list1结果是12

lpush list2 12

lpush list2 13

lpush list2 13

llen list2

3

List不要求元素唯一所以结果是3。

  • Set

无序集合存储多个不同的元素,每个元素的值不同,可以对元素的值添加删除以及检查元素是否在集合中。

sadd set1 12

scard set1

1

sadd set1 13

sadd set1 13

scard set1

2

sismember set1 13

判断13是否在集合中

srem set1 13

删除13元素

sismember set1 13

0

已经被删除了。

  • Hash类型

散列类型将多个键值对存储到redis键里面,键值的键为字符串类型,添加和删除键值对命令,获取所有键值对命令,对键值对的值进行自增自减命令。

hset hash1 key1 12 插入1个键值对 键为key1值为12

hget hash1 key1

12

hset hash1 key2 13

hset hash1 key3 13

hlen hash1

3

后面插入的元素值一样,键不一样,只要键不一样就是不同的条数所以返回了3.

hset hash1 key3 14

hget hash1 key3

14

一次性获取多个键的值

hmget hash1 key1 key2会按照key1 key2的顺序返回对应的值

12

13

Sort set类型

有序分数集合,存储的也是映射,分数与元素的映射,分数是浮点型的,可以看成是一个排行榜每一个元素都有自己的分数score,还有一个rank排行属性,从0开始最小随着score分值的变大排名不断变大。value必须为全局唯一.

如果score一样按照value的字典顺序排列。

zadd zset1 10.1 val1

zadd zset1 11.1 val2

zadd zset1 9.2 val3

zcard zset1

3

按照rank从小到大0-2这三个元素的分数

zrange zset1 0 2 withscores

PHP Redis操作

zrank zset1 val2 指定value排名

2

zadd zset1 12.2 val3

zrange zset1 0 2 withscores

PHP Redis操作

zadd zset1 12.2 val2

zrange zset1 0 2 withsocres

PHP Redis操作

因为value2的正序比3小,如果两个元素score一样按照两个元素的字典顺序排列先后。

文档地址:https://github.com/phpredis/phpredis

redis类的命名空间是根.

PHP连接redis

<?php

$redis = new \Redis();//根目录的说明符说明redis类在根目录下。

$redis->connect('127.0.0.1',7200);

PHP Redis操作

$redis = new \Redis();

$redis->connect('127.0.0.1',7200);

$redis->delete('string1');//确保操作的key是空的.

$redis->set('string1','val1');

$val = $redis->get('string1');

var_dump($val);

$redis->set('string1',4);

$redis->incr('string1',2);

$val = $redis->get('string1');

var_dump($val);

PHP Redis操作

PHP Redis操作

$redis = new \Redis();

$redis->connect('127.0.0.1',7200);

$redis->delete('list1');

$redis->lpush('list1','A');

$redis->lpush('list1','B');

$redis->lpush('list1','C');

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

var_dump($val);

结果输入A.

PHP Redis操作

$redis = new \Redis();

$redis->connect('127.0.0.1',7200);

$redis->delete('set1');

$redis->sAdd('set1','A');

$redis->sAdd('set1','B');

$redis->sAdd('set1','C');

$redis->sAdd('set1','C');

由于set元素必须是唯一的虽然插入了四次,因为第三次与第四次重复插入相同的元素。所以元素个数为3个。

$val = $redis->sCard('set1');

var_dump($val);

 

$val = $redis->sMembers('set1');//数组形式返回所有元素

var_dump($val);

PHP Redis操作

PHP Redis操作

存储key-value结构,key为string类型,value为一个元素.

$redis = new \Redis();

$redis->connect('127.0.0.1',7200);

$redis->delete('driver1');

$redis->hSet('driver1','name','test');

$redis->hSet('driver1','age',25);

$redis->hSet('driver1','gender',1);

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

var_dump($val);

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

var_dump($val);

PHP Redis操作

PHP Redis操作

$redis = new \Redis();

$redis->connect('127.0.0.1',7200);

$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);

PHP Redis操作