php笔记之-laravel-Redis入门操作
简介
Redis
模块负责与Redis
数据库交互,并提供Redis
的相关API支持;
Redis
模块提供redis
与redis.connection
这两个服务;redis.connection
服务提供redis
连接对象;redis
服务提供Illuminate\Redis\RedisManager
对象,负责与Redis
打交道的这部分管理工作;
配置项
'redis' => [ 'cluster' => false, 'default' => [ 'host' => env('REDIS_HOST', 'localhost'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 6379), 'database' => 0, ], ],
一般默认配置都是可以的
入门级操作
普通 set / get 操作; set
操作,如果键名存在,则会覆盖原有的值;
$redis = app('redis.connection'); $redis->set('library', 'predis'); // 存储 key 为 library, 值为 predis 的记录; $redis->get('library'); // 获取 key 为 library 的记录值
set
/ get
多个 key-value
$mkv = array( 'usr:0001' => 'First user', 'usr:0002' => 'Second user', 'usr:0003' => 'Third user' ); $redis->mset($mkv); // 存储多个 key 对应的 value $retval = $redis -> mget (array_keys( $mkv)); //获取多个key对应的value
存放带存储时效的记录
$redis->setex('library', 10, 'predis'); // 存储 key 为 library, 值为 predis 的记录, 有效时长为 10 秒
add
操作,不会覆盖已有值
$redis->setnx('foo', 12) ; // 返回 true , 添加成功 $redis->setnx('foo', 34) ; // 返回 false, 添加失败,因为已经存在键名为 foo 的记录
set
的变种,结果返回替换前的值
$redis->getset('foo', 56) ; // 返回 34; 如果之前不存在记录,则返回 null
incrby
/incr
/decrby
/decr
对值的递增和递减
$redis->incr('foo') ; // 返回 57,同时 foo 的值为 57 $redis->incrby('foo', 2 ) ; // 返回 59,同时 foo 的值为 59
检测是否存在值
$redis->exists('foo');
删除
$redis->del('foo'); // 成功删除返回 true, 失败则返回 false
type
类型检测,字符串返回 string
,列表返回 list
,set
表返回 set
/zset
,hash
表返回 hash
;
$redis->type('foo');
append
连接到已存在字符串
$redis->get('str'); // 返回 test $redis->append('str', '_123'); // 返回累加后的字符串长度 8,此时 str 为 'test_123'
setrange
部分替换操作, 并返回字符串长度
$redis->setrange('str', 0, 'abc'); // 返回 3, 第2个参数为 0 时等同于 set 操作 $redis->setrange('str', 2, 'cd'); // 返回 4, 表示从第2个字符后替换,这时 'str' 为 'abcd'
substr
部分获取操作
$redis->substr('str', 0, 2); // 返回'abc'; 表示从第 0 个起,取到第 2 个字符
strlen
获取字符串长度
$redis->strlen ('str'); // 返回 4; 此时 'str' 为 'abcd'
setbit
位存储
$redis->setbit('binary', 31, 1); //表示在第31位存入1,这边可能会有大小端问题?不过没关系, getbit 应该不会有问题
getbit
位获取
$redis->getbit('binary', 31); //返回1
keys
模糊查找功能,支持 * 号以及 ? 号 (匹配一个字符)
$redis->set('foo1', 123); $redis->set('foo2', 456); $redis->keys('foo*'); // 返回 foo1 和 foo2 的 array $redis->keys('f?o?'); // 同上
randomkey
随机返回一个key
$redis->randomkey() ; // 可能是返回 'foo1' 或者是 'foo2' 及其它任何已存在的 key
rename
/renamenx
方法对key
进行改名,所不同的是renamenx
不允许改成已存在的key
$redis->rename('str', 'str2'); // 把原先命名为'str'的 key 改成了 'str2'
expire
设置 key-value 的时效性ttl
获取剩余有效期persist
重新设置为永久存储
$redis->expire('foo', 10); // 设置有效期为 10 秒 $redis->ttl('foo'); // 返回剩余有效期值 10 秒 $redis->persisit('foo'); // 取消 expire 行为
dbsize
返回redis
当前数据库的记录总数
$redis->dbsize() ;
(转载请注明花儿为何那样红博客)