目录

Redis命令总结

Keys

COPY 复制key

COPY name username #name->username username必须不存在
COPY name username DB 1 #name->1:username
COPY name username REPLACE #存在则更新

DEL 删除key 返回值是删除的个数

UNLINK非阻塞删除,重新开辟一个线程去回收内存,立即返回

DEL key1 key2

EXISTS 查看可以是否存在 返回值是存在键的数量

EXISTS age username

EXPIRE EXPIREAT 设置key的过期时间,如果重新设置的key的值,前者是设置n秒后过期,后者设置一个Unix时间戳,表示在指定时间戳后过期

TTL 查看key剩余的时间·,返回-1则表示永久 -2则表示key不存在,PTTL则是毫秒

PERSIST 解除timeout时间

EXPIRE name 10
EXPIREAT name 8233132131
TTL name 
PERSIST name

KEYS 模式匹配展示出keys

KEYS name* # * 匹配所有
KEYS name? # ? 匹配一个

MOVE 移动key到指定的db

MOVE age 2

OBJECT 展示redis每个key的对象相关的信息,比如对象底层的数据结构是什么

redis有五大常见对象:

  • String
  • Hash
  • List
  • Set
  • Zset

要判断key属于上面上面哪个类型可以使用TYPE命令来查看

TYPE name

每种对象的底层编码方式都是不一样的

KEYS name* #* 表示匹配所有
KEYS name? #? 表示匹配一个字母

MOV

OBJECT ENCODING name #查看底层数据结构
OBJECT REFCOUNT name #查看该对象的被引用次数
OBJECT IDLETIME name #查看没有被访问的空闲时间(秒)

RANDOMKEY 随机返回一个key

RANDOMKEY

REMAME 重命名key,如果新的key存在则会覆盖,新的key的值就会丢失,所以可以使用RENAMENX来修改,如果不存在则才会rename,存在则返回0

RENAME name newName
RENAMENX name newName

TOUCH更新key的访问时间

TOUCH name

【?????】 SCAN 游标遍历key,普通的key匹配无法限制输出的个数,scan可以

SCAN 0
SCAN 0 MATCH ? COUNT 2 #匹配一个字母的key  并且限制2个数量

SORT 排序list、set等

SORT arr
SORT arr DESC

String

APPEND 追加,如果key不存在则新建一个,返回值是追加的长度

APPEND name lyer

INCR/DECR 对整数进行加1减1 不存在会创建,0为初始值

INCRBY/DECRBY 加减一定的数

INCR a
DECR b
INCRBY a 10

GETDEL 获取之后就删除

GETDEL name #之后再获取就没了

GETRANGE 获取string指定范围的字符串

GETRANGE name 0 3 #[0,3] [0,-1]全部

GETSET 获取老值同时设置新值

GETSET name abc

GETEX 获取值,同时设置过期时间

SETEX 设置值并设置过期时间

GETEX k EX 10
SETEX k 10 v

MGET 获取多个key,get只能获取一个key

MSET 设置多个key,set只能设置一个key

MGET k1 k2 k3
MSET k1 v1 k2 v2

SETNX/MSETNX 只有不存在才设置值,存在则不设置 msetnx其中有一个设置不成功则全部不成功

SETNX k v

SETRANGE 从指定位置开始设置值

SETRANGE k 10 aaaaa #10位置开始aaaaa 如果原来长度小于10则默认设置0

STRLEN 计算key的长度

STRLEN a

BitMap

BITCOUNT 计算val的1的个数,val对应的都是字符串形式保存,会转化为ascii码然后转化为二进制,包括数字也是会转化为ascii码

GITBIT/SETBIT 获取/设置指定位置的bit位,setbit如果不存在key则会创建,并且以8位为单位进行适当的扩容

a-z:97-122
A-Z:65-90
0-9:48-57
SET name a #01100001
BITCOUNT name #3
BITCOUNT name 0 3 #[0,3] 2
GETBIT name 0 #0:0 1:1 7:1
SETBIT name 0 1 #11100001

BITOP 用于位运算相关操作,dest不存在则会创建,存在则覆盖

BITOP <opt> <dest> <key1> <key2> ...

有如下几个操作符

AND、OR、XOR、NOT
BITOP AND a b c

HyperLoglog计数器

PFADD 将值添加到BloomFilter中

PFADD names lyer

PFCOUNT 计算有多少个元素

PFCOUNT names

PFMERGE 合并两个布隆过滤器

PFMERGE dest src #将src合并到dest中 src不变 dest是合并之后的

redis运维

CONFIG

此命令用于redis相关配置的设置和读取,具体内容参考官方文档

CONFIG GET databases #数据库数量 databases 16 

INFO

以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值,不同于CONFIG命令,此命令还会展示redis服务器运行时的动态数据

INFO #展示所有的信息
INFO server #展示特定的信息
INFO keyspace #展示每个数据库的键的数量等相关统计信息

其他的参考官方文档 https://redis.io/commands/info