Redis 高频常用命令列表


Redis 的数据类型

redis-cli 命令

命令说明cli 命令示例
del删除 keydel key_name
exists检查给定 key 是否存在exists key_name
keys查找所有符合给定模式 pattern 的 keykeys pattern
type返回 key 所存储的值的类型type key_name
expire设置 key 的过期时间expire key_name time_in_seconds
ttl返回 key 的剩余过期时间ttl key_name
saveRDB 持久化save
infoRedis 服务器的各种信息和统计数值inro [section]
shutdown保存并停止所有客户端shutdown [nosave] [save]
flushall清空整个 redis 服务器的数据flushall
flushdb清空当前库中所有的 keyflushdb
select切换到指定的数据库select db_number

Redis 字段类型

  • 字符串 String
  • 散列/哈希 Hash
  • 列表 List
  • 无序集合 Set
  • 可排序集合 Zset

字符串 String

最大容量为 512M

命令说明Cli 命令示例PHP 写法
set赋值set key value$redis->set(‘key’, ‘value’);
setex赋值并添加过期时间setex key expire value$redis->setex(‘key’, ‘expire’, ‘value’);
get取值get key$redis->get(‘key’);
incr递增数字incr key$redis->incr(‘int_key’);
incrby增加指定的数字incrby key increment$redis->incrBy(‘int_key’, number);
decr递减数字decr key$redis->decr(‘key1’);
decrby减少指定的数字decrby key decrement$redis->decrBy(‘key1’, number);
incrbyfloat增加指定浮点数incrbyfloat key increment$redis->incrByFloat(‘key1’, 1.5);
append向尾部追加值append key value$redis->append(‘key’, ‘value2’);
strlen获取字符串长度strlen key$redis->strlen(‘key’);
mset同时设置多个 key 的值mset key1 value1 [key2 value2 …]$redis->mSet(array(‘key0’ => ‘value0’, ‘key1’ => ‘value1’));
mget同时获取多个 key 的值mget key1 [key2 …]$redis->mGet(array(‘key1’, ‘key2’, ‘key3’));

散列/哈希 Hash

1、与 php 的 array 相似;2、可以保存多个 key-value 对,每个 k-v 都是字符串类型;3、最多 2^32-1 个字段。

命令说明Cli 命令示例PHP 写法
hset赋值hset key field value$redis->hSet(key, field, value);
hmset赋值多个字段hmset key field1 value1 [field2 values]$redis->hMset(key, array(‘field1’ => ‘value1’, ‘field2’ => ‘value2’));
hget取值hset key field$redis->hGet(key, field);
hmget取多个字段的值hmset key field1 [field2]$redis->hmGet(key, array(‘field1’, ‘field2’));
hgetall取所有字段的值hgetall key$redis->hGetAll(key);
hlen获取字段的数量hlen key$redis->hLen(key);
hexists判断字段是否存在hexists key field$redis->hExists(key, field);
hsetnx当字段不存在时赋值hsetnx key field value$redis->hSetNx(key, field, value);
hincrby增加数字hincrby key field increment$redis->hIncrBy(key, field, num);
hdel删除字段hdel key field$redis->hDel(key, field);
hkeys获取所有字段名hkeys key$redis->hKeys(key);
hvals获取所有字段值hvals key$redis->hVals(key);

列表 List

1、实现方式为双向链表;2、用于存储一个有序的字符串列表;3、从队列两端添加和弹出元素;4、特别适合于做消息队列。

命令说明Cli 命令示例PHP 写法
lpush向列表左端添加元素lpush key value$redis->lPush(key, value);
rpush向列表右端添加元素rpush key value$redis->rPush(key, value);
lpop从列表左端弹出元素lpop key$redis->lPop(key);
rpop从列表右端弹出元素rpop key$redis->rPop(key);
llen获取列表中元素个数llen key$redis->lSize(key);
lrange获取列表中某一片段的元素lrange key start stop$redis->lRange(key, start, end);
lrem删除列表中指定的值lrem key count value$redis->lRem(key, value, count);
lindex获取指定索引的元素值lindex key index$redis->lGet(key, index);
lset设置指定索引的元素值lset key index value$redis->lSet(key, index, value);
ltrim值保留列表指定片段ltrim key start stop$redis->lTrim(key, start, end);
linsert向列表中插入元素linsert key before/after existing_value value$redis->lInsert(key, Redis::BEFORE, existing_value, value);

无序集合 Set

1、集合中每个元素都是不同的;2、元素最多为 2^32-1;3、元素没有顺序

命令说明Cli 命令示例PHP 写法
sadd添加元素sadd key value1 [value2 value3 …]$redis->sAdd(‘key1’, ‘set1’);
srem删除元素srem key value2 [value2 value3 …]$redis->sRem(‘key’, ‘set2’);
smembers获得集合中所有元素smembers key$redis->sMembers(‘key’);
sismember判断元素是否在集合中sismember key value$redis->slsMember(key, value);
sdiff对集合做差集运算sdiff key1 key2 [key3 …]$redis->sDiff(key1, key2, key3);
sinter对集合做交集运算sinter key1 key2 [key3 …]$redis->sInter(‘key1’, ‘key2’, ‘key3’);
sunion对集合做并集运算sunion key1 key2 [key3 …]$redis->sUnion(‘key1’, ‘key2’, ‘key3’);
scard获得集合中元素的个数scard key$redis->sCard(‘key1’);
sdiffstore对集合做差集运算并将结果存储sdiffstore destination key1 key2 [key3 …]$redis->sDiffStore(‘output’, key1, key2, key3);
sinterstore对集合做交集运算并将结果存储sinterstore destination key1 key2 [key3 …]$redis->sInterStore(‘output’, ‘key1’, ‘key2’, ‘key3’);
sunionstore对集合做并集运算并将结果存储sunionstore destination key1 key2 [key3 …]$redis->sUnionStore(‘output’, ‘key1’, ‘key2’, ‘key3’);
srandmember随机获取集合中的元素srandmember key [count]$redis->sRandMember(‘key1’, 2);
spop随机弹出一个元素spop key$redis->sPop(‘key1’);

可排序集合 Zset

1、集合是有序的;2、支持插入,删除,判断元素是否存在;3、可以获取分数最高/最低的前 N 个元素。

命令说明Cli 命令示例PHP 写法
zadd添加元素zadd key score1 value1 [score2 value2 score3 value3 …]$redis->zAdd(‘key’, 1, ‘val1’);
zscore获取元素的分数zscore key value$redis->zScore(key, val2);
zrange获取正序排名在某索引区间范围的元素zrange key start stop [withscore]$redis->zRange(‘key1’, 0, -1);
zrevrange获取倒序排名在某索引区间范围的元素zrevrange key start stop [withscore]$redis->zRevRange(‘key1’, 0, -1);
zrangebyscore获取指定分数范围内的元素zrangebyscore key min max$redis->zRangeByScore(key, start, end, array(withscores, limit));
zincrby增加某个元素的分数zcard key$redis->zSize(‘key’);
zcount获取指定分数范围内的元素个数zcount key min max$redis->zCount(key, start, end);
zrem删除一个或多个元素zrem key value1 [value2 …]$redis->zDelete(‘key’, ‘val2’);
zremrangebyrank按照排名索引区间范围删除元素zremrangebyrank key start stop$redis->zRemRangeByRank(‘key’, 0, 1);
zremrangebyscore按照分数范围删除元素zremrangebyscore key min max$redis->zRemRangeByScore(‘key’, 0, 3);
zrank获取正序排序的元素的排名zrank key value$redis->zRank(key, value);
zrevrank获取逆序排序的元素的排名zrevrank key value$redis->zRevRank(key, value);

文章作者: Alex
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Alex !
评论
  目录