redis php 实例一

<?php

/**

* Redis  学习笔记

*/

//echo 8%(-2); //print 0

/**

链接一个redis实例

return 链接成功返回TRUE 否则返回 false

*/

$redis = new Redis();

$result = $redis->connect(‘127.0.0.1‘,6379);

if($result){

echo "redis conn is success";

}else{

echo "redis conn is fail";

}

echo ‘<hr>‘;

/**

设置key和value的值及读取设置的key和value

*/

$result = $redis->set(‘test‘,"hello word redis");

var_dump($result).‘<br>‘;    //结果:bool(true)

$result = $redis->get(‘test‘);

var_dump($result).‘<br>‘;   //结果:string(16) "hello word redis"

$redis->delete(‘test‘);//将redis存入内存的键test删除

$result = $redis->get(‘test‘); //由于内存中已近删除,所以结果 boolean false

var_dump($result).‘<br>‘;

/**

redis 判断键是否存在

*/

$seting = $redis->set("demo",‘redis key exists ?‘);

var_dump($seting).‘<br>‘; //boolean true

$exists = $redis->exists(‘demo‘);

var_dump($exists).‘<br>‘; //boolean true

/**

decr

描述:数字递减存储键值。

参数:key value:将被添加到键的值

返回值:INT the new value

incr

描述:数字递减存储键值。

参数:key value:将被添加到键的值

返回值:INT the new value

*/

$redis->set(‘test‘,"100");

var_dump($redis->incr("test")).‘<br>‘;;  //结果:int(101)

var_dump($redis->incr("test")).‘<br>‘;;  //结果:int(102)

$redis->set(‘test1‘,"10");

var_dump($redis->decr("test1")).‘<br>‘;;  //结果:int(9)

var_dump($redis->decr("test1")).‘<br>‘;;  //结果:int(8)

/**

getMultiple

描述:取得所有指定键的值。如果一个或多个键不存在,该数组中该键的值为假

参数:其中包含键值的列表数组

返回值:返回包含所有键的值的数组

*/

$arr = array(‘136502993‘,‘zhuwawa‘);

$int = 100;

$string = ‘my love....‘;

$redis->set(‘demo2‘,$arr);

$redis->set(‘demo3‘,$int);

$redis->set(‘demo4‘,$string);

$result1 = $redis->getMultiple(array(‘demo2‘,‘demo3‘,‘demo4‘));

echo ‘<pre>‘;

var_dump($result1).‘<br>‘;

/**

lpush

将一个或多个值 value 插入到列表 key 的表头

描述:由列表头部添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE。

参数:key,value

返回值:成功返回数组长度,失败false

*/

$redis->delete(‘test‘);

var_dump($redis->lpush("test","111")).‘<br>‘;   //结果:int(1)

var_dump($redis->lpush("test","222")).‘<br>‘;   //结果:int(2)

/**

rpush

描述:由列表尾部添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE。

参数:key,value

返回值:成功返回数组长度,失败false

*/

$redis->delete(‘test‘);

var_dump($redis->lpush("test","111")).‘<br>‘;  //结果:int(1)

var_dump($redis->lpush("test","222")).‘<br>‘;   //结果:int(2)

var_dump($redis->rpush("test","333")).‘<br>‘;   //结果:int(3)

var_dump($redis->rpush("test","444")).‘<br>‘;   //结果:int(4)

/**

lpop

描述:返回和移除列表的第一个元素

参数:key

返回值:成功返回第一个元素的值 ,失败返回false

*/

$redis->delete(‘test‘);

$redis->lpush("test","111");

$redis->lpush("test","222");

$redis->rpush("test","333");

$redis->rpush("test","444");

var_dump($redis->lpop("test")).‘<br>‘;  //结果:string(3) "222"

/**

rpop

描述:返回和移除列表的最后一个元素

参数:key

返回值:成功返回最后一个元素的值 ,失败返回false

*/

$redis->delete(‘test‘);

$redis->lpush("test","111");

$redis->lpush("test","222");

$redis->rpush("test","333");

$redis->rpush("test","444");

var_dump($redis->rpop("test")).‘<br>‘;  //结果:string(3) "444"

/**

lsize,llen

描述:返回的列表的长度。如果列表不存在或为空,该命令返回0。如果该键不是列表,该命令返回FALSE。

参数:Key

返回值:成功返回数组长度,失败false

*/

$redis->delete(‘test‘);

$redis->lpush("test","111");

$redis->lpush("test","222");

$redis->rpush("test","333");

$redis->rpush("test","444");

var_dump($redis->lsize("test")).‘<br>‘; //结果:int(4)

/**

lget

描述:返回指定键存储在列表中指定的元素。 0第一个元素,1第二个… -1最后一个元素,-2的倒数第二…错误的索引或键不指向列表则返回FALSE。

参数:key index

返回值:成功返回指定元素的值,失败false

*/

$redis->delete(‘test‘);

$redis->lpush("test","111");

$redis->lpush("test","222");

$redis->rpush("test","333");

$redis->rpush("test","444");

var_dump($redis->lget("test",3)).‘<br>‘;  //结果:string(3) "444"

/**

lset

描述:为列表指定的索引赋新的值,若不存在该索引返回false.

参数:key index value

返回值:成功返回true,失败false

*/

$redis->delete(‘test‘);

$redis->lpush("test","111");

$redis->lpush("test","222");

var_dump($redis->lget("test",1)).‘<br>‘;  //结果:string(3) "111"

var_dump($redis->lset("test",1,"333")).‘<br>‘;  //结果:bool(true)

var_dump($redis->lget("test",1)).‘<br>‘;  //结果:string(3) "333"

/**

lgetrange

描述:

返回在该区域中的指定键列表中开始到结束存储的指定元素,lGetRange(key, start, end)。0第一个元素,1第二个元素… -1最后一个元素,-2的倒数第二…

参数:key start end

返回值:成功返回查找的值,失败false

*/

$redis->delete(‘test‘);

$redis->lpush("test","111");

$redis->lpush("test","222");

print_r($redis->lgetrange("test",0,-1));  //结果:Array ( [0] => 222 [1] => 111 )

/**

lremove

描述:从列表中从头部开始移除count个匹配的值。如果count为零,所有匹配的元素都被删除。如果count是负数,内容从尾部开始删除。

参数:key count value

返回值:成功返回删除的个数,失败false

*/

$redis->delete(‘test‘);

$redis->lpush(‘test‘,‘a‘);

$redis->lpush(‘test‘,‘b‘);

$redis->lpush(‘test‘,‘c‘);

$redis->rpush(‘test‘,‘a‘);

print_r($redis->lgetrange(‘test‘, 0, -1)); //结果:Array ( [0] => c [1] => b [2] => a [3] => a )

var_dump($redis->lremove(‘test‘,‘a‘,2));   //结果:int(2)

print_r($redis->lgetrange(‘test‘, 0, -1)); //结果:Array ( [0] => c [1] => b )

/**

sadd

描述:为一个Key添加一个值。如果这个值已经在这个Key中,则返回FALSE。

参数:key value

返回值:成功返回true,失败false

*/

$redis->delete(‘test‘);

var_dump($redis->sadd(‘test‘,‘111‘));   //结果:bool(true)

var_dump($redis->sadd(‘test‘,‘333‘));   //结果:bool(true)

print_r($redis->sort(‘test‘)); //结果:Array ( [0] => 111 [1] => 333 )

/**

sremove

描述:删除Key中指定的value值

参数:key member

返回值:true or false

*/

$redis->delete(‘test‘);

$redis->sadd(‘test‘,‘111‘);

$redis->sadd(‘test‘,‘333‘);

$redis->sremove(‘test‘,‘111‘);

print_r($redis->sort(‘test‘));    //结果:Array ( [0] => 333 )

/**

smove

描述:将Key1中的value移动到Key2中

参数:srcKey dstKey member

返回值:true or false

*/

$redis->delete(‘test‘);

$redis->delete(‘test1‘);

$redis->sadd(‘test‘,‘111‘);

$redis->sadd(‘test‘,‘333‘);

$redis->sadd(‘test1‘,‘222‘);

$redis->sadd(‘test1‘,‘444‘);

$redis->smove(‘test‘,"test1",‘111‘);

print_r($redis->sort(‘test1‘));    //结果:Array ( [0] => 111 [1] => 222 [2] => 444 )  ;

/**

scontains

描述:检查集合中是否存在指定的值。

参数:key value

返回值:true or false

*/

$redis->delete(‘test‘);

$redis->sadd(‘test‘,‘111‘);

$redis->sadd(‘test‘,‘112‘);

$redis->sadd(‘test‘,‘113‘);

var_dump($redis->scontains(‘test‘, ‘111‘)); //结果:bool(true)

/**

ssize

描述:返回集合中存储值的数量

参数:key

返回值:成功返回数组个数,失败0

*/

$redis->delete(‘test‘);

$redis->sadd(‘test‘,‘111‘);

$redis->sadd(‘test‘,‘112‘);

echo $redis->ssize(‘test‘);   //结果:2

/**

spop

描述:随机移除并返回key中的一个值

参数:key

返回值:成功返回删除的值,失败false

*/

$redis->delete(‘test‘);

$redis->sadd("test","111");

$redis->sadd("test","222");

$redis->sadd("test","333");

var_dump($redis->spop("test"));  //结果:string(3) "333"

/**

sinter

描述:返回一个所有指定键的交集。如果只指定一个键,那么这个命令生成这个集合的成员。如果不存在某个键,则返回FALSE。

参数:key1, key2, keyN

返回值:成功返回数组交集,失败false

*/

$redis->delete(‘test‘);

$redis->delete(‘test‘);

$redis->sadd("test","111");

$redis->sadd("test","222");

$redis->sadd("test","333");

$redis->sadd("test1","111");

$redis->sadd("test1","444");

var_dump($redis->sinter("test","test1"));  //结果:array(1) { [0]=> string(3) "111" }

/**

sinterstore

描述:执行sInter命令并把结果储存到新建的变量中。

参数:

Key: dstkey, the key to store the diff into.

Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.

返回值:成功返回,交集的个数,失败false

*/

$redis->delete(‘test‘);

$redis->sadd("test","111");

$redis->sadd("test","222");

$redis->sadd("test","333");

$redis->sadd("test1","111");

$redis->sadd("test1","444");

var_dump($redis->sinterstore(‘new‘,"test","test1"));  //结果:int(1)

var_dump($redis->smembers(‘new‘));  //结果:array(1) { [0]=> string(3) "111" }

/**

sunion

描述:

返回一个所有指定键的并集

参数:

Keys: key1, key2, … , keyN

返回值:成功返回合并后的集,失败false

*/

$redis->delete(‘test‘);

$redis->sadd("test","111");

$redis->sadd("test","222");

$redis->sadd("test","333");

$redis->sadd("test1","111");

$redis->sadd("test1","444");

print_r($redis->sunion("test","test1"));  //结果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 )

/**

sunionstore

描述:执行sunion命令并把结果储存到新建的变量中。

参数:

Key: dstkey, the key to store the diff into.

Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.

返回值:成功返回,交集的个数,失败false

*/

$redis->delete(‘test‘);

$redis->sadd("test","111");

$redis->sadd("test","222");

$redis->sadd("test","333");

$redis->sadd("test1","111");

$redis->sadd("test1","444");

var_dump($redis->sinterstore(‘new‘,"test","test1"));  //结果:int(4)

print_r($redis->smembers(‘new‘));  //结果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 )

/**

描述:返回第一个集合中存在并在其他所有集合中不存在的结果

参数:Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis.

返回值:成功返回数组,失败false

*/

$redis->delete(‘test‘);

$redis->sadd("test","111");

$redis->sadd("test","222");

$redis->sadd("test","333");

$redis->sadd("test1","111");

$redis->sadd("test1","444");

print_r($redis->sdiff("test","test1"));  //结果:Array ( [0] => 222 [1] => 333 )

/**

sdiffstore

描述:执行sdiff命令并把结果储存到新建的变量中。

参数:

Key: dstkey, the key to store the diff into.

Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis

返回值:成功返回数字,失败false

*/

$redis->delete(‘test‘);

$redis->sadd("test","111");

$redis->sadd("test","222");

$redis->sadd("test","333");

$redis->sadd("test1","111");

$redis->sadd("test1","444");

var_dump($redis->sdiffstore(‘new‘,"test","test1"));  //结果:int(2)

print_r($redis->smembers(‘new‘));  //结果:Array ( [0] => 222 [1] => 333 );

/**

smembers, sgetmembers

描述:

返回集合的内容

参数:Key: key

返回值:An array of elements, the contents of the set.

*/

$redis->delete(‘test‘);

$redis->sadd("test","111");

$redis->sadd("test","222");

print_r($redis->smembers(‘test‘));  //结果:Array ( [0] => 111 [1] => 222 )

?>

时间: 2024-11-14 12:00:14

redis php 实例一的相关文章

redis 应用实例(pub/sub、cache)

项目地址:https://github.com/windwant/redis sub1:结合Spring 简单 订阅/发布系统. sub2:redis缓存 JedisPool jedis 链接连接池 单机 ShardedJedisPool 切片连接池 分布式(多个redis 运行实例) 根据一致性那个hash算法动态均匀存储及获取key-value JedisSentinelPool 哨兵模式

redis单实例、多实例、主从同步实战

[安装redis单实例实战] yum -y install gcc gcc-c++    #安装编译工具 cd /opt wget -c http://download.redis.io/releases/redis-3.0.5.tar.gz   #下载包 tar xf redis-3.0.5.tar.gz     #解压 cd redis-3.0.5 make MALLOC=libc  #编译 make PREFIX=/usr/local/redis install  #安装 echo 'PA

redis多实例

redis的多实例配置 一般redis都不要太大,不要超过30G,如果超过就用多实例 #配置redis多实例很简单,只要给多给一个配置文件,以及给在配置文件中指定一下,这个实例的dump.rdb的保存路径.以及不同的端口号就可以了  mkdir -p /application/redis/data/  cp  /application/redis/conf/redis.conf /application/redis/data/  grep "port 6" redis.conf   s

redis 多实例配置

(redis的安装, 配置, 登陆等基础不再多说, 网上很多资料的, 这里只说个人对redis多实例的理解与配置) 我自己使用的redis版本是 2.8.13, 环境是 ubuntu 个人对多实例的理解如下: 用QQ做个例子, 双击, 打开一个QQ界面, 不管是否登陆, 都算是启动了一个QQ的进程:那如果想再多开一个QQ, 就需要再双击打开一个QQ; 同理至 redis, linux 一个端口同一时间是只能提供一项服务的, 打开两个redis实例, 首要做的就是为redis设置不同的端口. 还有

小贝_php+redis简单实例

php+redis简单实例 一.说明 因为redis是c/s架构.从这个角度上.不论什么符合redis的client要求的.都能够与redis进行通讯.官方提供了非常多的client. php在web方面的发展.大家够有目共睹.因此这里主要是解说php与redis的使用实例 二.实例 这里仅使用了redis的字符串类型.用到了get和set命令 <? php /** * @explain php操作redis * 1.设置key为name,其值为脚本小子 * 2.获取key为name的值 * @

redis多实例+MongoDB基本配置+LDAP+SVN

redis多实例 [[email protected] redis-stable]# cp -p redis.conf redis6380.conf (拷贝出一个配置文件) [[email protected] redis-stable]# grep 6380 redis6380.conf (参数修改,按需求修改) port 6380 pidfile /var/run/redis_6380.pid dbfilename dump6380.rdb appendfilename "appendonl

redis多实例&amp;分片&amp;jedis的使用

接下来学习redis多实例的部署.数据分片,以及jedis API的使用. redis多实例部署 一般单个redis的进程是不能满足实际需求的,需要在单台服务器上部署多个redis进程,充分发挥cpu的效能,多台服务器上的redis进程将组成庞大的集群,多的一般部署达到数千个redis进程. 暂时不考虑高可用的情况,下面在一台centos6.5上部署三个redis实例,要想实现部署需要修改redis.conf文件,需要修改服务端口号.日志文件编号.rdb文件编号等,下面边查看常用配置边修改. (

03.Redis单实例部署之基于RDB持久化

一.部署Redis单实例[RDB持久化] ## 操作系统环境说明 [[email protected] ~]# cat /etc/redhat-release;uname -r;uname -m; CentOS Linux release 7.5.1804 (Core) 3.10.0-862.el7.x86_64 x86_64 [[email protected] ~]# firewall-cmd --state ## 查看firewall墙的状态 not running [[email pro

02.利用Shell开发Redis多实例启动脚本

一.Redis部署情况 ## 软件部署情况 [[email protected] ~]# ls -ld /data/apps/redis <==目录本身及以下所有文件的属主/组为redis lrwxrwxrwx 1 root root 24 Oct 26 11:33 /data/apps/redis -> /data/apps/redis-4.0.14/ ## 实例部署情况 [[email protected] ~]# tree /data/redis/ <==目录本身及以下所有文件的属

小贝_php+redis简单实例222

一.说明 由于redis是c/s架构,从这个角度上,任何符合redis的客户端要求的,都可以与redis进行通讯.官方提供了很多的客户端. php在web方面的发展,大家够有目共睹.因此这里主要是讲解php与redis的使用实例 二.实例 这里仅使用了redis的字符串类型.用到了get和set命令 [php] view plaincopyprint? <?php /** * @explain php操作redis *          1.设置key为name,其值为脚本小子 *