文章目录
写在前面
Redis的全部命令详情可以在官网查询。
点此Redis系列文章专栏
命令不自己敲一遍,都是白搭,就算忘了也可以翻这篇博客。
命令组
Connection
| 命令 | 作用 | 示例 |
|---|---|---|
| ping | ping服务器 ,无参返回pong有参返参 | |
| select index | 切换数据库(默认16个数据库,index从0开始) |
Key
| 命令 | 作用 | 示例 |
|---|---|---|
| exists key | 返回key是否存在 | |
| del key | 删除key,返回删除数量 | |
| move key db | 移动key到另一个数据库 | |
| type key | 返回key存储类型 | |
| keys pattern | 返回正则表达式搜索结果,如keys *查看所有 | |
| expire key seconds | 设置key过期时间,过期自动删除 | |
| ttl key | 返回key剩余时间(time to live) |
Server
| 命令 | 作用 | 示例 |
|---|---|---|
| flushdb | 清空当前数据库数据 | |
| flushall | 清空所有数据库所有数据 | |
| dbsize | 返回当前数据库keys数量 |
五大数据类型
String
计数器、对象缓存存储等
| 命令 | 作用 | 示例 |
|---|---|---|
| set key value | 将key赋值为value | |
| get key | 返回key的值,不存在返回nil | |
| append key value | 追加一个值到key上 | |
| strlen key | 返回string长度 | |
| incr key | 加1 | |
| decr key | 减1 | |
| incrby key increment | 加上一个数 | |
| decrby key increment | 减上一个数 | |
| getrange key start end | 获取子串,闭区间,第一个下标从0开始,-1表示最后一个,-2倒数第二个,以此类推 | |
| setrange key offset value | 替换子串 | |
| setex key seconds value | 设置key的值和过期时间 | |
| setnx key value | 如果不存在则set(SET if Not eXists) ,常用于分布式锁 | |
| mset key value [key value …] | 批量设置 | |
| mget key [key …] | 批量获取 | |
| msetnx key value [key value …] | 批量设置如果key不存在,同setnx,一起成功一起失败(只要有一个key存在则命令全部失败,即视为一个事务) | |
| getset key value | 先set再get |
List
消息队列、堆栈等
| 命令 | 作用 | 示例 |
|---|---|---|
| lpush key value [value …] | 向list左边插入值(left push),若不存在则创建之,并返回list大小 | |
| rpush key value [value …] | 向list右边插入值(right push),若不存在则创建之,并返回list大小 | |
| lrange key start stop | 获取list指定范围内的元素,闭区间,第一个下标从0开始,-1表示最后一个,-2倒数第二个,以此类推 | |
| lpop key | 移除list左边第一个元素,并返回所移除元素值 | |
| rpop key | 移除list右边第一个元素,并返回所移除元素值 | |
| lindex key index | 通过索引获取list值 | |
| lrem key count value | 移除前count次出现的值为value 的元素 | |
| ltrim key start stop | 截取list | |
| rpoplpush source destination | 从source移除最后一个元素,并将其加到destination左边 | |
| lset key index value | 设置list的值 | |
| linsert key BEFORE/AFTER pivot value | 在pivot前或后面插入一个值 |
Set
| 命令 | 作用 | 示例 |
|---|---|---|
| sadd key member [member …] | 向集合插入值,若set不存在则创建之,注意元素不能相同,返回插入成功数量 | |
| smembers key | 返回集合所有元素 | |
| sismember key member | 判断集合是否包含member,返回1包含,0不包含 | |
| scard key | 返回集合内元素数量 | |
| srem key member [member …] | 从集合里删除元素,返回成功删除的个数 | |
| srandmember key [Count] | 随机返回集合内一个元素 | |
| spop key [Count] | 随机删除集合内元素,返回所删元素 | |
| smove source destination member | 从source集合中移动member元素到destination集合中 | |
| sdiff key [key …] | 返回两集合差集 | |
| sinter key [key …] | 返回两集合交集 | |
| sunion key [key …] | 返回两集合并集 | |
| sdiffstore destination key [key …] | 将差集存入destination集合中,返回元素个数 | |
| sinterstore destination key [key …] | 将交集存入destination集合中,返回元素个数 | |
| sunionstore destination key [key …] | 将并集存入destination集合中,返回元素个数 | 在这里插入图片描述 |
Hash
map<>key,key[field]=value
用于常变动的数据,同时Hash适合对象,String适合字符串。
| 命令 | 作用 | 示例 |
|---|---|---|
| hset key field value | 设置哈希集key中field字段的值。若字段不存在创建之并返回1,否则覆盖之并返回0。 | |
| hget key field | 返回哈希集key中field字段所关联的值 | |
| hmset key field value [field value …] | 设置哈希集中多个字段的值 | |
| hmget key field [field …] | 返回哈希集中多个字段的值 | |
| hgetall key | 返回哈希集所有字段和值 | |
| hdel key field [field …] | 删除字段及其值 | |
| hexists key field | 判断指定字段是否存在(1存在0不存在) | |
| hkeys key | 只获取所有字段(field) | |
| hvals key | 只获取所有值(value) | |
| hincrby key field increment | 对字段的值加上一个数 | |
| hsetnx key field value | 如果字段不存在才设置字段和值(返回1),存在则操作无效(返回0) |
Zset
有序集合,即比set多个权值z用来排序。
用于排序、优先队列等,如排行榜、top N
| 命令 | 作用 | 示例 |
|---|---|---|
| zadd [NX/XX]: [CH] [INCR] score member [score member …] | 添加时可以指定多个分数/成员对,若成员已添加则更新分数,并更新到正确排序位置,若分数相同则按字典序。 | |
| zrange key start stop [WITHSCORES] | 返回区间内的元素,WITHSCORES可以将分数与元素一起返回,升序 | |
| zrangebyscore key min max [WITHSCORES] [LIMIT offset count] | 返回有序集合中分数在min和max之间的所有元素,min和max可以是-inf和+inf表示正负无穷。升序 | |
| zrevrange key start stop [WITHSCORES] | 返回区间内的元素,降序 | |
| zrevrangebyscore key min max [WITHSCORES] [LIMIT offset count] | 返回有序集合中分数在min和max之间的所有元素,降序 | |
| zrem key member [member …] | 删除元素 | |
| zcard key | 获取元素个数 | |
| zcount key min max | 获取分数在min和max间的元素个数 | |
| zpopmax key [COUNT] | 删除集合中分数最高的count个元素,count默认1,并返回所删元素及其分数 | |
| zpopmin key [COUNT] | 删除集合中分数最低的count个元素,count默认1,并返回所删元素及其分数 |
三种特殊数据类型
Geo
Geo底层是Zset存储,所以也可以用Zset命令操作Geo。
推算地理位置信息,比如共享位置,附近的人,打车距离等。
- 有效的经度从-180度到180度。
- 有效的纬度从-85.05112878度到85.05112878度。
| 命令 | 作用 | 示例 |
|---|---|---|
| geoadd key longitude latitude member [longitude latitude member …] | 将指定的地理空间位置(经度、纬度、名称)添加到指定的key中。 | |
| geopos key member [member …] | 获取经纬度 | |
| geodist key member1 member2 [unit] | 获取两个位置的距离(dist) | |
| georadius key longitude latitude radius m/km/ft/mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT coun t] [ASC/DESC] | 以给定的经纬度为中心, 返回半径内包含的所有元素 | |
| georadiusbymember key member radius m/km/ft/mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT coun t] [ASC/DESC] | 以指定元素为中心, 返回半径内包含的所有元素 | |
| geohash key member [member …] | 返回位置元素的Geohash表示。hash串越接近距离越近 | |
| Geo底层是Zset存储 | Zset可参考前面 |
Hyperloglog
基数统计(不重复的数),比如PV(网页浏览量)统计(一个人多次访问也只算一次)
重点是耗内存非常小,统计 2 64 2^{64} 264只要12KB左右.
| 命令 | 作用 | 示例 |
|---|---|---|
| pfadd key element [element …] | 存储元素到HyperLogLog结构中,若基数变返回1,否则返回0 | |
| pfcount key [key …] | 返回近似基数 | |
| pfcount destkey sourcekey [sourcekey …] | 将多个sourcekey取并集存入destkey |
Bitmap
位存储(即01两种状态),比如用于签到打卡,登录状态等
底层是String
| 命令 | 作用 | 示例 |
|---|---|---|
| setbit key offset value | 设置或者清空key的value(01字符串)在offset处的bit值。返回在offset处原来的bit值 | |
| getbit key offset | 获取在offset处的bit值 | |
| bitcount key [start end] | 统计给定区间内被设置为1的bit数 |
原创不易,请勿转载(
本不富裕的访问量雪上加霜)
博主首页:blog.csdn.net/qq_45034708
如果文章对你有帮助,记得关注点赞收藏❤