1. 连接
1 |
|
2. 数据类型
2-1 string字符串
1 |
|
2-2 list列表
1 |
|
-
存储
1
2
3
$redis
->lpush(
'list'
,
'a'
);
// 从左边加入$redis->lpush('list', 'b');$redis->lpush('list', 'c');
$redis
->rpush(
'list'
,
'd'
);
// 从右边加入$redis->lset('list', 2, 'e');// 设置或更改列表指定位置的值,成功返回1,失败返回错误信息
-
删除
1
2
3
4
5
$redis
->lpop(
'list'
);
// 删除左边第一个$redis->rpop('list'); // 删除右边第一个// $redis->lrem('list名', '值', num); // 根据值删除元素,第二个参数是要删除的值(值为这个值的元素要被删除),// 第三个参数 num 表示:从哪开始删、删几个,
//num>0 从表头往表尾删,删除num个结束;
//num<0 从表尾往表头删,删除 |num| 个;
//num=0 移除表中所有值为'b'的元素
$redis
->lrem(
'list'
,
'b'
, 2);
-
获取,返回数组
1
2
3
4
5
6
7
$redis
->lrange(
'list'
, 0, -1);
// 返回一个数组。存储在key中的列表里指定范围的元素,
// 第一个参数是列表名
// 第二个参数是起始位下标,
// 第三个是结束位下标(包含结束位元素)。
// 负数代表倒数,-1代表倒数第一个;
// 如果起始大于结束返回空,结束大于实际长度,返回至最后一个元素。$redis->lgetrange('list', 0, 2);// 获取列表指定区间的值,同上$redis->ltrim('list', 0, 3); // 截取并保留列表指定区间的值,其余值删除。
// 成功返回1,失败返回错误信息。负数代表倒数$redis->lsize('list'); // 获取列表的长度$redis->lget('list', 2) // 获取列表指定位置的值$redis->lindex('list', 2); // 获取列表指定位置的值
2-3 hash字典
1 2 3 |
|
-
存储
1
2
3
4
5
6
7
8
9
10
// $redis->hset('hash表', key, value);
// 如果hash表不存在,创建一个该hash表,如果不存在该key则设置成功,返回true,
// 如果存在,则替换掉原来的值,返回false,失败返回false
// 第一个参数是字典名
$redis
->hset(
'hashtest'
,
'a'
,
'aaa'
);
// 返回true
$redis
->hset(
'hashtest'
,
'a'
,
'bbb'
);
// 返回false,a的值改为bbb
$redis
->hset(
'hashtest'
,
'b'
,
'bbb'
);
// 返回true,增加b,值为bb$redis->hmset('hashtest', [1 => 1, 2 => 2, 3 => 3]); // 批量赋值, $redis->hincrby('hashtest', '1', 1); // hash表中的key对应的值自增1(整数),
// 第一个参数字典名
// 第二个参数是key名,
// 第三个参数是自增的幅度。如果表中不存在该key,则自动添加该key,并设置值为自增幅度$redis->hincrbyfloat('hashtest', '2', 1.5); // hash表中key自增
-
获取
1
2
3
4
$redis
->hget(
'hash表'
, key);
// 获取某个key对应的值
$redis
->hget(
'hashtest'
,
'a'
);
// 获取hashtest中a的值$redis->hkeys('hashtest'); // 获取hash表中的所有的keys(键名),返回一个数组 $redis->hvals('hashtest'); // 获取hash表中的所有的values(值),顺序随机,返回一个数组$redis->hgetall('hashtest'); // 获取hash表中所有的键值对,顺序随机,返回一个数组$redis->hlen('hashtest'); // 获取hash表中key的数量 $redis->hmget('hashtest', [1, 2, 3]); // 批量获取多个key对应的value,第二个参数是keyArr
$redis
->hexists(
'hashtest'
,
'b'
);
// 判断hash表中是否存在该key
-
删除
1
2
3
$redis
->hdel(
'hashtest'
,
'a'
);
// 删除hash表中的一个key,成功返回true,
// 如果表不存在或key不存在返回false
2-4 set集合
1 2 3 |
|
-
添加
1
2
3
4
// $redis->sadd('set集合', '值'); // 往settest中加入一个值,成功,返回添加的个数,失败返回0。// 第一个参数是set集合名// 第二个参数是往该集合插入新值,即:往value中插入新值
$redis
->sadd(
'settest'
,
'a'
);
// 1
$redis
->sadd(
'settest'
,
'b'
);
// 1
$redis
->sadd(
'settest'
,
'a'
);
// 0$redis->sadd('settest', ['c', 'd', 'e']); // 一次添加多个值
-
获取
$redis->smembers('settest'); // 获取集合中所有的元素$redis->sismember('settest', 'b'); // 判断元素是否是set成员$redis->scard('settest'); // 查看集合中元素的数量$redis->sinter('settest', 'settest2'); // 返回两个集合的交集$redis->sinterstore('settest3', 'settest', 'settest2'); // 将settest和settest2的交集放到集合settest3中$redis->sunion('settest', 'settest2'); // 返回两个集合的并集$redis->sunionstore('settest4', 'settest', 'settest2'); // 将settest和settest2的并集放到集合settest4中$redis->sdiff('settest', 'settest2'); // 返回两个集合的差集$redis->sdiffstore('settest5', 'settest', 'settest2'); // 将settest和settest2的差集放到集合settest5中
-
删除
$redis->srem('settest', 'a'); // 删除集合中的某个值,$redis->srem('settest', 'a', 'b'); // 删除多个值 $redis->spop('settest'); // 移除集合中一个随机的元素,并返回该元素
2-5. sorted set有序集合
1 2 3 4 5 |
|
-
添加或更新
1
2
3
4
5
6
7
8
// $redis->zadd('有序集合名', 分数, 值); // 向有序集合ztest中一个值,分数值可以是整数值或双精度浮点数。// 执行zadd时,如果不存在,则创建一个新的有序集合;// 如果ztest存在但不是有序集类型时,返回一个错误。
$redis
->zadd(
'ztest'
, 1,
'a'
);
$redis
->zadd(
'ztest'
, 2,
'a'
);
// 当某元素存在时,更新这个元素的分数,并重新插入该元素,保证元素在正确的位置。
// 但不算新添加的$redis->zadd('ztest', 分数1, 值1, 分数2, 值2); // 向有序集合插入多个值
$redis
->zadd(
'ztest'
, 2,
'b'
, 3,
'c'
, 4,
'd'
);
$redis
->zincrby(
'set'
, 2,
'c'
);
// 指定的值 c 增加 2
-
获取
1
2
3
// $redis->zrange('z集合', 起始位, 结束位, 布尔值); // 获取指定区间的有序集合。返回数组。分数从小到大。// 第一个参数: 有序集合名// 第二个参数:起始位置,// 第三个参数:结束位置(包含该位置),负数代表倒数第几个,// 第四个参数:可选参数,布尔值,是否带有分数,默认false
$redis
->zrange(
'ztest'
, 0, 1);
// ['a', 'b'] 按分数排序,但是不带分数
$redis
->zrange(
'ztest'
, 0, 1, true);
// ['a' => 2, 'b' => 2] 按分数排序,并且携带分数 ['元素' => '分数']$redis->zrevrange('zset', 1, 2); // 获取指定区间的有序集合。返回数组。分数从大到小。$redis->zscore('ztest', 'a'); // 获取指定元素的分数$redis->zcard('zset'); // 获取存储元素的个数$redis->zcount('zset', 2, 5); // 分数介于 2~5 的元素的个数$redis->zrangebyscore('zset', 2, 3); // 返回分数介于 2~3 的元素,不带分数,显示方式同zrange$redis->zrangebyscore('zset', 2, 3, ['withscores' => true]); // 返回分数介于2~3的元素,并带分数显示,显示方式同zrange
-
删除
$redis->zrem('zset', 'c'); // 删除指定成员$redis->zremrangebyscore('set', 2, 3); // 移除分数介于2~3的元素,返回删除的个数
3. 其他常用方法
3-1 查找相关key
1 |
|
3-2 过期时间
-
查看过期时间
1
2
// $redis->ttl('key名'); // 查看某个key有效期的剩余时间,返回秒数。 // 当 无过期时间 时,返回:-1; // 当 无该key值 时,返回-2;
$redis
->ttl(
'ttltest'
);
// 查看ttltest剩余过期时间
-
设置过期时间
1
Redis::expire(
'key'
, second);
// 多少秒后过期Redis::expireAt('key', timeStemp); // 到某一个 时间戳(秒) 的时候过期