PHP redis的使用

基本用法

Redis 字符串(String)
string (字符串) >>

  1. 添加数据: set(“country:state:city”, “BeiJing”)

  2. 只有当key 不存在才设置 : setnx($key, $value)

  3. 添加数据: set(“country:state:city”, “BeiJing”)

  4. 只有当key 不存在才设置 : setnx($key, $value)

  5. 设置值同时指定过期时间: setex($key, $seconds, $value)

  6. 获取数据: get(“country:state:city”)

  7. 设置过期时间:expire($key, 3600)

  8. 设置过期时间戳:expireat($key, 163253000)

  9. 添加多个数据: mget($keys)

  10. 获取多个数据: mset($dictionary)

  11. 自增数量:incrby($key, $num)

Redis 列表(List)
list (列表,队列) >>

  1. 左边插入:lpush($key)
  2. 右边弹出:rpop($key)
  3. 获取列表所有值:lrange($key,0,-1)
  4. 获取元素数量: llen($key)
  5. 通过索引index获取值:lindex($key, $index)

Redis 哈希(Hash)
hash (字典,键值对) >>

  1. 添加数据: hset($key, $field, $value)
  2. 多个 field-value 插入 key:hmset($key, $dictionary)
  3. 获取指定字段的值: hget($key, $field)
  4. 获取指定 key 的所有字段和值: hgetall($key)
  5. 获取字段数量:hlen($key)
  6. 获取所有字段:hkeys($key)

Redis 集合(Set)
set (集合) >>

  1. 添加数据: sadd($key, [1,2,3])
  2. 获取集合所有值 : smembers($key)
  3. 获取总数: scard($key)
  4. 交集: sinter($key, $key2)
  5. 差异: sdiff($key, $key2)
  6. 并集: sunion($key, $key2)
  7. 移动 : smove($source, $destination, $member)
  8. 返回一个或多个随机数: srandmember($key, $count)
  9. 弹出一个随机值: spop($key, $count)
  10. 移除指定member:srem($key, $member)
  11. 判断member是否存在集合内: sismember($key, $member)

菜鸟教程 - Redis 有序集合(sorted set)
sortdset (有序集合) >>

  1. 添加数据: zadd($key,[$member=>‘score’])
  2. 获取集合所有值 : zrange($key, 0, -1)
  3. 指定分数区间成员数: zcount($key, $min, $max)
  4. 获取总数: zcard($key)
  5. 获取成员的索引: zrank($key,$member)
  6. 获取指定成员的分数值: zscore($key, $member)
  7. 获取成员的分数值(从高到低): zrevrange($key, 0,9)
    获取成员的分数值(指定分数区间从高到低): zrevrangebyscore($key, $max, $min)

Redis五种数据类型及应用场景

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的几种常见方式和用法

猜你喜欢

转载自blog.csdn.net/qq_39004843/article/details/108237037