redis常用的命令
通用:
- Expire ($redisKey, 86400); 设置过期时间
- TTL KEY_NAME 判断剩余时间
字符串(string):
- setnx name xuke 如果name已经存在则设置失败
- setex name 10 xuke 为变量设置一个过期时间,过期后变为nil(秒)
- mget name age 同时获得多个变量的信息
- mset name xuke age 20 同时设置多个变量的信息
- msetnx name xuke age 20 如果一个失败了,其他的也不会有效果,原子性
SET website baidu EX 60 NX
set配合nx和ex实现分布式锁
哈希(hash):
- hmset one name xuke age 20 批量赋值
- hmget one name age 获取对象指定的值(批量)
- hmgetall one 获得对象的所有值
- hlen one 返回属性数
列表(list):
- BLPOP list1 100 会等待100秒,这中间是阻塞的状态
- lindex mylist 0 获取队列第一个元素
- LRANGE mylist 0 -1 获取第一个到最后一个的所有元素
- Lrem mylist 1 xuke 从前往后删除值等于xuke的元素,删除数量为1
- LSET KEY_NAME INDEX VALUE 通过键名的方式直接赋值
- LTRIM KEY_NAME START STOP 只保留指定键名区域内的值,其他删除
- RPUSHx 跟rpush不同x的模式中如果key不存在则什么也不会执行
- Rpoplpush listMain listBack //
原子性操作
,main队列右侧pop,并push如back队
集合(set):
- SADD myset “hello” 插入值
- SCARD myset 获取几个值的个数
- sdiff myset1 myset2 如果myset1=1,2,3 myset2=3,4 则结果返回1,2
(判断一不在二里面的参数,交集SINTER,并集SUNION) - Sdiffstore my1 my2 myRe 将差集赋值给myRe
- sismember myset1 “hello” 判断hello是否是myset1的成员
- smembers myset1 列出myset1的所有成员
- SMOVE myset1 myset2 “bar” 成员转移
- SPOP myset1 随机删除一个元素,并返回 (Srandmember 一样,只是他随机返回后不会删除改元素)
- SREM myset1 “foo” 删除指定成员
有序集合(sort set):
- ZADD myset 2 “world” 3 “bar” 批量录入数据
- ZCARD KEY_NAME 获得数量
- ZCOUNT myzset 1 3 计算在分数在某个区间的元素数
- ZINCRBY myzset 2 “hello” 指定的元素的分数加上2
- ZRANGEBYSCORE($redisKey, (string)‘0’, “+inf”); 列出所有数据
- Zscore ($redisKey, $ip) 判断数据是否在集合中