快速网站推广,怎么把网站放到空间吗,做律师事务所网站,池州网站建设哪家好Redis 作为高性能的键值存储数据库#xff0c;提供了丰富的命令集#xff0c;主要涵盖 字符串 (String)、哈希 (Hash)、列表 (List)、集合 (Set)、有序集合 (ZSet)、键 (Keys)、Geo#xff08;地理位置#xff09;、HyperLogLog#xff08;基数统计#xff09;、Bitmap提供了丰富的命令集主要涵盖 字符串 (String)、哈希 (Hash)、列表 (List)、集合 (Set)、有序集合 (ZSet)、键 (Keys)、Geo地理位置、HyperLogLog基数统计、Bitmap位图、BitField位操作、Scan迭代查询操作。 下面按照类别分类总结 Redis 的常用命令及其使用方式。
基本操作
1. Key键操作
命令作用EXISTS key检查 key 是否存在DEL key [key ...]删除一个或多个 keyEXPIRE key seconds设置 key 的过期时间TTL key查看 key 剩余的生存时间RENAME key newkey修改 key 的名称TYPE key获取 key 对应的 value 类型KEYS pattern 查找符合 pattern 规则的 key
示例
SET name redis
EXPIRE name 10
TTL name
DEL name2. 字符串 (String)
命令说明SET key value设置指定 key 的值GET key获取指定 key 的值GETSET key value设置新值并返回旧值MGET key [key ...]同时获取多个 key 的值MSET key value [key value ...]同时设置多个 key 的值MSETNX key value [key value ...]同时设置多个 key 的值当所有 key 都不存在时才执行SETNX key value当 key 不存在时设置 key 的值SETEX key seconds value设置 key 的值并指定过期时间秒PSETEX key milliseconds value设置 key 的值并指定过期时间毫秒STRLEN key返回 key 中字符串值的长度APPEND key value追加 value 到 key 原有值的末尾GETRANGE key start end获取字符串指定区间内的子字符串旧别名SUBSTRSETRANGE key offset value从指定偏移量开始覆盖写入字符串INCR key将 key 中存储的数字加 1INCRBY key increment将 key 中存储的数字加上指定增量INCRBYFLOAT key increment将 key 中存储的浮点数加上指定增量DECR key将 key 中存储的数字减 1DECRBY key decrement将 key 中存储的数字减去指定减量GETBIT key offset返回字符串中指定偏移量处的位值SETBIT key offset value将字符串中指定偏移量处的位设置为 0 或 1BITCOUNT key [start end]统计字符串中值为 1 的位数BITOP operation destkey key [key ...]对一个或多个 key 进行位操作AND、OR、XOR、NOTBITPOS key bit [start] [end]查找字符串中第一个指定二进制位的位置
示例
SET username Tom
GET username
INCR count
DECR count
APPEND username Smith
STRLEN username3. 哈希 (Hash)
命令说明HSET key field value为哈希表中的字段赋值HSETNX key field value仅当字段不存在时为哈希表中的字段赋值HMSET key field value [field value ...]同时为多个字段赋值新版 Redis 建议使用 HSET 多参数形式HGET key field获取哈希表中指定字段的值HMGET key field [field ...]获取哈希表中多个字段的值HDEL key field [field ...]删除哈希表中一个或多个字段HEXISTS key field检查哈希表中是否存在指定字段HLEN key返回哈希表中字段的数量HKEYS key返回哈希表中所有的字段名称HVALS key返回哈希表中所有字段对应的值HGETALL key返回哈希表中所有的字段和值HINCRBY key field increment将哈希表中指定字段的整数值增加指定数值HINCRBYFLOAT key field increment将哈希表中指定字段的浮点数值增加指定数值HSTRLEN key field返回哈希表中指定字段对应的值的字符串长度
示例
HSET user:1001 name Alice
HGET user:1001 name
HGETALL user:1001
HDEL user:1001 name4. 列表 (List)
命令说明LPUSH key value [value ...]将一个或多个值插入到列表的头部RPUSH key value [value ...]将一个或多个值插入到列表的尾部LPOP key移除并返回列表的第一个元素RPOP key移除并返回列表的最后一个元素LINDEX key index通过索引获取列表中的元素索引从 0 开始负数表示从尾部开始LLEN key获取列表的长度LRANGE key start stop获取列表中指定区间内的元素**LINSERT key BEFOREAFTER pivot value**LSET key index value对列表中指定索引位置的元素进行赋值LREM key count value根据参数 count 的值移除列表中与 value 相等的元素LTRIM key start stop对列表进行修剪只保留指定区间内的元素RPOPLPUSH source destination移除 source 列表的最后一个元素并将其添加到 destination 列表的头部同时返回该元素BLPOP key [key ...] timeout阻塞式地移除并返回列表的第一个元素可同时阻塞多个列表BRPOP key [key ...] timeout阻塞式地移除并返回列表的最后一个元素BRPOPLPUSH source destination timeout阻塞式地执行 RPOPLPUSH 操作LPUSHX key value当列表存在时将值插入到列表头部RPUSHX key value当列表存在时将值插入到列表尾部
示例
LPUSH queue task1
RPUSH queue task2
LPOP queue
LRANGE queue 0 -15. 集合 (Set)
命令说明SADD key member [member ...]向集合中添加一个或多个成员SREM key member [member ...]移除集合中的一个或多个成员SMEMBERS key返回集合中的所有成员SISMEMBER key member判断指定元素是否集合的成员SCARD key获取集合中成员的数量SINTER key [key ...]返回给定所有集合的交集SINTERSTORE destination key [key ...]计算给定集合的交集并将结果存储在 destination 中SUNION key [key ...]返回给定所有集合的并集SUNIONSTORE destination key [key ...]计算给定集合的并集并将结果存储在 destination 中SDIFF key [key ...]返回给定集合之间的差集SDIFFSTORE destination key [key ...]计算差集并将结果存储在 destination 中SRANDMEMBER key [count]返回集合中一个或多个随机成员SSCAN key cursor [MATCH pattern] [COUNT count]迭代集合中的元素适合处理大集合时分批遍历
示例
SADD users Tom Jerry
SMEMBERS users
SISMEMBER users Tom
SREM users Jerry
SCARD users6. 有序集合 (Sorted Set / ZSet)
命令说明ZADD key [NX|XX] [CH] [INCR] score member [score member ...]ZREM key member [member ...]移除有序集合中的一个或多个成员ZINCRBY key increment member为有序集合中的成员的分数加上指定值ZRANGE key start stop [WITHSCORES]返回有序集合中指定区间内的成员按分数从低到高排序ZREVRANGE key start stop [WITHSCORES]返回有序集合中指定区间内的成员按分数从高到低排序ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]返回有序集合中分数在指定范围内的成员ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]返回有序集合中分数在指定范围内的成员从高到低排序ZRANK key member返回成员在有序集合中的排名从 0 开始按分数从低到高排序ZREVRANK key member返回成员在有序集合中的排名从 0 开始按分数从高到低排序ZSCORE key member返回有序集合中成员的分数ZCARD key获取有序集合中的成员数量ZCOUNT key min max统计分数在指定范围内的成员数量ZLEXCOUNT key min max统计字典序在指定范围内的成员数量仅适用于分数相同的成员ZRANGEBYLEX key min max [LIMIT offset count]返回有序集合中成员的字典序范围内的元素ZREVRANGEBYLEX key max min [LIMIT offset count]返回有序集合中成员的字典序范围内的元素逆序ZPOPMIN key [count]移除并返回有序集合中分数最小的成员ZPOPMAX key [count]移除并返回有序集合中分数最大的成员ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM | MAX | MIN]多个有序集合求并集ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM | MAX | MIN]多个有序集合求交集ZSCAN key cursor [MATCH pattern] [COUNT count]迭代有序集合中的元素ZMSCORE key member [member ...]获取有序集合中多个成员的分数Redis 6.2 及以上支持
示例
ZADD ranking 100 Alice
ZADD ranking 200 Bob
ZRANGE ranking 0 -1 WITHSCORES
ZREM ranking Alice7. 其他操作
命令作用FLUSHDB清空当前数据库FLUSHALL清空所有数据库INFO获取服务器统计信息PING测试连接 特定使用场景操作
1. Geo地理位置存储与计算
Redis 的 Geo 用于存储地理位置经纬度并提供距离计算、范围查询等功能。
命令作用GEOADD key longitude latitude member [longitude latitude member ...]添加地理位置信息GEODIST key member1 member2 [unit]计算两个位置之间的距离支持单位m、km、mi、ftGEOPOS key member [member ...]获取指定位置的经纬度GEORADIUS key longitude latitude radius unit [WITHCOORD] [WITHDIST] [COUNT count] [ASC|DESC]GEORADIUSBYMEMBER key member radius unit [WITHCOORD] [WITHDIST] [COUNT count] [ASC|DESC]GEOHASH key member [member ...]获取成员的 GeoHash 值
示例
GEOADD cities 116.40 39.90 Beijing
GEOADD cities 121.47 31.23 Shanghai
GEODIST cities Beijing Shanghai km
GEORADIUS cities 116.40 39.90 100 km WITHDIST2. HyperLogLog基数统计
Redis HyperLogLog 是用于 近似统计不重复元素数量 的数据结构占用内存固定12 KB适用于大规模数据去重计数。
命令作用PFADD key element [element ...]添加元素到 HyperLogLogPFCOUNT key [key ...]获取去重后的元素数量估算值PFMERGE destkey sourcekey [sourcekey ...]合并多个 HyperLogLog
示例
PFADD users user1 user2 user3
PFCOUNT users
PFMERGE total_users users1 users2适用场景统计 网站UV、活跃用户数、访问IP数 等。
3. Bitmap位图
Bitmap 是 二进制位存储 结构适用于存储 用户签到、活跃状态、权限控制 等场景。
命令作用SETBIT key offset value设置某个位的值1 或 0GETBIT key offset获取某个位的值BITCOUNT key [start end]统计 key 中值为 1 的位个数BITOP operation destkey key [key ...]按位操作AND、OR、XOR、NOT
示例
SETBIT sign:20240301 1 1 # 用户ID1签到
SETBIT sign:20240301 2 1 # 用户ID2签到
GETBIT sign:20240301 1 # 查询用户ID1是否签到
BITCOUNT sign:20240301 # 统计今日签到人数适用场景用户签到、状态标记、权限控制、唯一性判断。
4. BitField高级位操作
BitField 用于操作多个二进制位 支持批量读写适用于 计数器、标记存储、状态管理。
命令作用BITFIELD key GET type offset读取某个位置的值BITFIELD key SET type offset value设置某个位范围的值BITFIELD key INCRBY type offset increment对某个位范围的值进行增减
示例
BITFIELD user_data SET u8 0 100 # 把偏移量0的8位数值设为100
BITFIELD user_data INCRBY u8 0 5 # 偏移量0的8位数值加5
BITFIELD user_data GET u8 0 # 获取偏移量0的8位值适用场景用户计数、状态标记、存储紧凑数据。
5. Scan游标迭代查询
SCAN 命令用于 大规模数据迭代查询可以分批遍历 key、集合、哈希、ZSet。
命令作用SCAN cursor [MATCH pattern] [COUNT count]迭代 keyHSCAN key cursor [MATCH pattern] [COUNT count]迭代 hashSSCAN key cursor [MATCH pattern] [COUNT count]迭代 setZSCAN key cursor [MATCH pattern] [COUNT count]迭代 zset
示例
SCAN 0 MATCH user:* COUNT 10
HSCAN user:1001 0 MATCH name COUNT 5适用场景海量数据分页查询防止 KEYS 阻塞 Redis。