基本用法
Redis 字符串(String)
string (字符串) >>
-
添加数据: set(“country:state:city”, “BeiJing”)
-
只有当key 不存在才设置 : setnx($key, $value)
-
添加数据: set(“country:state:city”, “BeiJing”)
-
只有当key 不存在才设置 : setnx($key, $value)
-
设置值同时指定过期时间: setex($key, $seconds, $value)
-
获取数据: get(“country:state:city”)
-
设置过期时间:expire($key, 3600)
-
设置过期时间戳:expireat($key, 163253000)
-
添加多个数据: mget($keys)
-
获取多个数据: mset($dictionary)
-
自增数量:incrby($key, $num)
Redis 列表(List)
list (列表,队列) >>
- 左边插入:lpush($key)
- 右边弹出:rpop($key)
- 获取列表所有值:lrange($key,0,-1)
- 获取元素数量: llen($key)
- 通过索引index获取值:lindex($key, $index)
Redis 哈希(Hash)
hash (字典,键值对) >>
- 添加数据: hset($key, $field, $value)
- 多个 field-value 插入 key:hmset($key, $dictionary)
- 获取指定字段的值: hget($key, $field)
- 获取指定 key 的所有字段和值: hgetall($key)
- 获取字段数量:hlen($key)
- 获取所有字段:hkeys($key)
Redis 集合(Set)
set (集合) >>
- 添加数据: sadd($key, [1,2,3])
- 获取集合所有值 : smembers($key)
- 获取总数: scard($key)
- 交集: sinter($key, $key2)
- 差异: sdiff($key, $key2)
- 并集: sunion($key, $key2)
- 移动 : smove($source, $destination, $member)
- 返回一个或多个随机数: srandmember($key, $count)
- 弹出一个随机值: spop($key, $count)
- 移除指定member:srem($key, $member)
- 判断member是否存在集合内: sismember($key, $member)
菜鸟教程 - Redis 有序集合(sorted set)
sortdset (有序集合) >>
- 添加数据: zadd($key,[$member=>‘score’])
- 获取集合所有值 : zrange($key, 0, -1)
- 指定分数区间成员数: zcount($key, $min, $max)
- 获取总数: zcard($key)
- 获取成员的索引: zrank($key,$member)
- 获取指定成员的分数值: zscore($key, $member)
- 获取成员的分数值(从高到低): zrevrange($key, 0,9)
获取成员的分数值(指定分数区间从高到低): zrevrangebyscore($key, $max, $min)
Laravel 示例
过期时间设置
$redis = \Illuminate\Support\Facades\Redis::connection('default');
$redis->select(5); //选择数据库
$redis->set($key,$value);
$timestamp = mktime(23, 59, 59, date("m"), date("d"), date("Y")); //当天时间戳
$redis->expireAt($key, $timestamp); //设置键的过期时间(具体时间)
$redis->expire($key, $seconds); //设置键的过期时间(秒)
$redis->ttl($key); // 获取过期时间(秒)
List(列表、队列)
$key = 'test:';
$redis = \Illuminate\Support\Facades\Redis::connection('default');
$redis->select(5);
$redis->lpush($key.'arr', rand(0, 100)); //左边插入
$redis->rpop($key.'arr'); //右边弹出
$a = $redis->lrange($key.'arr', 0, -1); //获取这个队列里所有的值
dump($a);
redis 还有许多在平常项目中的用法比如做缓存、秒杀,可以参考这篇文章:
php使用redis的几种常见方式和用法