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

浙公网安备 33010602011771号