Redis使用案例

948 阅读3分钟

一、常修改的数据应使用redis。

举例:在电商使用中,像浏览量,销量,关注商品的数量。

thinkphp6设置好redis之后

public function buy(Request $request)
{    
    $id = $request->put('id');    
    if ($id) {       
        $redis = Cache::store('redis')->handler();        
        $exist = $redis->hExists($id,'buy');        
        //判断是否存在浏览量        
        if ($exist) {            
            $buy = $redis->hIncrBy($id,'buy',1);        
        } else {            
            $redis->hSet($id,'buy',1);            
            $buy = $redis->hGet($id, 'buy');        
        }        
        return json(['code'=>200, 'buy'=>$buy]);    
    }
}

PHP使用Redis的Hash(哈希表)命令

命令

作用

返回值

hDel

删除哈希表key中一个或多个字段,传入不存在的字段将被忽略

返回成功删除的字段数

hExists

判断哈希表key中是否存在给定的字段

存在true,不存在false

hGet

从哈希表key中获取给定的一个字段值

存在返回字段值,不存在返回false

hGetAll

从哈希表key中获取全部的字段和值

存在返回关联数组,不存在返回空数组

hIncrBy

整形数值递增(有符号)

递增后的值

hIncrByFloat

浮点型数值递增(有符号)

递增后的值

hKeys

返回哈希表key中所有的字段

存在字段返回关联数组,不存在返回空数组

hLen

返回哈希表key中字段数量

大于等于0的整数

hMGet

返回哈希表key中给定的一个或多个字段的值

返回一个关联数租,键为查询的字段,值为查询到的值,查询的字段不存在则值为false

hMSet

对哈希表key设置一组字段值

如果命令成功,返回true

hSet

对哈希表key设置一个字段值

如果是设置了一个新值,返回1,如果覆盖了一个旧值,返回0

HSetnx

在哈希表key中不存在给定字段的情况下赋值

成功返回1,如果已经存在则返回0

hVals

返回哈希表key中所有的字段的值

关联数组

五大数据类型:

String字符串

String是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。

String类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

String类型是Redis最基本的数据类型,一个键最大能存储512MB。

Hash哈希

Redis hash 是一个键值对集合。

Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。

List列表

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。

Set集合

Redis的Set是string类型的无序集合。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

sadd 命令:添加一个string元素到,key对应的set集合中,成功返回1,如果元素以及在集合中返回0,key对应的set不存在返回错误。

Zset有序集合

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

zset的成员是唯一的,但分数(score)却可以重复。

zadd 命令:添加元素到集合,元素在集合中存在则更新对应score。

他写的很好:

https://www.cnblogs.com/toutou/p/redis_data_type.html