php笔记之-laravel-Redis入门操作

简介

Redis模块负责与Redis数据库交互,并提供Redis的相关API支持;

Redis模块提供redisredis.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,列表返回 listset 表返回 set/zsethash 表返回 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() ;
posted @ 2017-09-20 17:39  花儿为何那样红  阅读(441)  评论(0编辑  收藏  举报