Redis 学习笔记 -- 常用php函数

键值操作

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
//参数:connect(host,port,timeout)
//timeout可以为空,在redis.conf里timeout默认300
//pconnect不会主动关闭的连接

key

//写入值
$redis->set($work->uid, $workString);
$redis->setnx($work->uid,$workString); //key不存在是赋值
$redis->setex($a,50,1);                //range设置值后ttl设为50
$redis->setrange(key,offset,value);
//获取值
$redis->get($work->uid);
//删除key
$redis->del($work->uid);
var_dump($redis->get($work->uid));  //返回bool(false)
//键是否存在
if(!$redis->exists('key'))
var_dump($redis->del('key'));       //返回int(0)

mset多个key操作

//设置mset
$array_mset=['a'=>1,'b'=>2];
$redis->mset($array);
$redis->msetnx($array);    //key不存在时才写入,但一次要么全写,要么全不写。
//读取mset
$array_mget=['a','b'];
$redis->mget($arram_mget);
//删除多个key
$redis->del($array_mget);

keys

//读取keys
$array_mset_keys=['abc'=>1,'bcd'=>2,'cde'=>3];
$redis->keys('*a*');  //返回['a'=>1];
$redis->keys('b??');  //返回['b'=>2];
$redis->keys('*');    //返回所有keys

getset key value:设置值并返回旧值

strlen:返回字符串长度

getrange(substr):字符串截取

rename:键改名

$redis->rename('a','a1');    //成功返回true,键不存在时返回false,newkey已经存在其值会被覆盖;

renamex

键改名,newkey存在时不改

$redis->renamex('a','a1'); //a1如果已经存在,返回0;

append:字符串追

$redis->append('a','12345') ;//如果a不存在,就是普通的set操作

incr:储存的数字值增1

incrby:值增increment

$redis->incrby('a',10);

decr:数字值减1

decrby:数字值减decrement

setbit key offset value:设置或清除指定位

getbit key offset:获取指定偏移量上的位

type:返回key值类型

返回值有以下几种:

none(key不存在)int(0)
string 字符串 int(1)
list 列表 int(3)
set 集合 int(2)
zset 有序集合 int(4)
hash 哈希表 int(5)

randomkey:随机返回一个key

echo $redis->randomkey();   //如果没有key 返回false

object:查看对象

move:移动数据

$redis->MOVE('a',1));   //把键a从当前数据库移到1里。如果key不存在,返回false; 目标数据库存在key时,返回false.

Hash

hset key field value:设置哈希值

hsetnx key field value:不存在时设置值

hmset key field value[field value…]:设置多个哈希值

hget key field:获取hash域值

hmget key field [field …]:获取若干个域值

hgetall key:返回key所有域和值

hdel key field [field…]除一个或多个域

hlen key:返回key里域数量

hexists key field:查看key里给定域的field是否存在

hincrby key field increment:域值增加increment

hkeys key:返回所有域

hvals key:返回key所有值

lpush key value[value…]: 表头插入一个或多个值

$redis->lpush('a',1);
$redis->lpush('a',2);

lpushx key value:当且仅当key存在并且是一个列表时才插入

rpush key value:表尾插入

rpushx key value、lpop key:移除并返回key头元素

rpop key:移除并返回key的尾元素

blpop key [key…]:timeout lpop的阻塞版本,如果没有可供弹出的元素,程序会等待。

brpop key [key…]:timeout rpop的阻塞版本

llen key:返回列表 key的长度

lrange key start stop:返回区间

lrem key count value:移除列表值为value的元素

count>0 从表头向表尾搜索,移除值为value的元素,数量为count
count<0 从表尾向表头,移除值为value的元素,数量为-count
count=0 移除值为value的元素

lset key index value:设置key下标为index的值

ltrim key start stop:对列表修剪,删除区间外元素

lindex key index:返回下标为index的元素

linsert key:插入

rpoplpush source destination:弹出最后一个元素,把元素插入到列表destination里作为表头

brpoplpush source destination timeout:阻塞

集合(Set)

sadd key member [member …]:插入元素到集合里

srem key member [member …]:移除元素

smembers key:返回集合成员

sismember key member:判断member是否是key的成员

scard key:返回集合key的基数

smove source destination member:member元素从source移动到destination

spop key:移除并返回集合中的一个随机元素

srandmember:返回集合中一个随机元素

sinter key [key…]:返回集合成员

sinterstore destination key[key…]:返回成员到destination里,如果目标存在则覆盖

sunion key [key …]:返回集合全部成员

sunionstore destination key[key…]:返回成员保存到destination

sdiff key[key…]:返回一个集合的全部成员

sdiffstore destination key[key…]:结果保存到destination

Sorted Set有序集

zadd key score member[[score member] [score member] …]:一个或多个member及其score加入到有序集key中

zrem key member [member…]:移除有序集key中的一个或多个成员

zcard key:返回有序集key的基数

zcount key min max:返回有序集key中,score值在min与max之间的成员

zscore key member:返回有序集key中成员member的score值

zincreby key increment member:给member成员的score值增量

zrange key start stop [WITHSCORES]:返回有序集key中指定区间成员,score从小到大

zrevrange key start stop [WITHSCORES]:返回key中指定区间内的成员,score从大到小

zrangebyscore:返回区间成员,score从小到大

zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]:返回敬意成员,score从大到小

zrank key member:返回member排名,score从小到大

zrevrank key member:member排名,score递减

ZREMRANGEBYRANK key start stop:移除成员,下标在start stop之间

ZREMRANGEBYSCORE key min max:移除成员,score在min与max之间

ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]:计算有序集交集

ZUNIONSTORE:计算有序集并集

排序

sort 数值排序

$redis->SORT('a');   //返回排序结果

alpha限定按字符排序

$redis->SORT('a',array('ALPHA'=>TRUE)); //返回排序结果

limit限定返回数量

$redis->SORT('a',array('LIMIT'=>array(0,5));

sort限定正序倒序

$redis->SORT('a',array('SORT'=>'DESC'));

by外部排序

$redis->SORT('a',array('BY'=>''));

排序其它用法较多,这里不再详细一一列举。

生命周期

ttl、expire、expireat

$redis->set('a',12345);
$redis->expire('a',30); //单位秒
$redis->expireat('a','1435152916'); //接受时间戳
echo $redis->get('a');  //如果已经过期,返回false
echo $redis->ttl('a');  //返回剩余时间(秒)。如果未赋expire值,返回-1;如果键不存在,也返回-1

persit移除生存时间

$redis->persist('a');

数据库操作

选择数据库

$redis->SELECT(0);    //默认就是数据库0 

清除

$redis->FLUSHALL(); //删除所有数据库
$redis->flushdb();  //删除当前数据库所有key

 

posted @ 2015-11-10 10:16  王永东gg  阅读(234)  评论(0)    收藏  举报