注意:括号里是参数,具体使用的时候不需要括号和逗号,直接使用空格分隔命令以及各个参数即可。

1、对Key操作的命令

exists(key):确认一个key是否存在。存在返回1,不存在返回0。

del(key):删除一个 key。key 存在返回1,不存在返回0。

expire(key, seconds):为给定 key 设置过期时间,以秒计。key 存在返回1,不存在返回0。

expireat(key, seconds-timestamp):为给定 key 设置过期时间。以秒计,时间参数是 unix  时间戳。key 存在返回1,不存在返回0。(不清楚)

pexpire(key, milliseconds):为给定 key 设置过期时间,以毫秒计。key 存在返回1,不存在返回0。

pexpireat(key, milliseconds-timestamp):为给定 key 设置过期时间。以毫秒计,时间参数是 unix  时间戳。key 存在返回1,不存在返回0。(不清楚)

ttl(key):以秒为单位返回 key 的剩余生存时间。永久 key 的返回-1。

pttl(key):以毫秒为单位返回 key 的剩余生存时间。永久 key 的返回-1。

persist(key):移除 key 的过期时间,key 将持久保持。

keys(pattern):返回所有符合给定模式( pattern)的 key 。

move(key, dbindex):将当前数据库中的 key 转移到 dbindex 数据库,dbindex 为0到15。

rename(oldname, newname):将 key 由 oldname 重命名为 newname。若 newname 的 key 存在则删除 newname 表示的 key,然后再将 key 由 oldname 重命名为 newname。

rnamenx(oldname, newname):将 key 由 oldname 重命名为 newname。若 newname 的 key 存在则不做操作。

type(key):返回 key 所储存的值的类型。

dump(key):序列化给定 key ,并返回被序列化的值。(不清楚)

randomkey:从当前数据库中随机返回一个 key。

2、对String操作的命令

set(key, value):给名称为 key 的 string 赋予值 value。

get(key):返回名称为 key 的 string 的 value。

substr(key, start, end):返回名称为 key 的 string 的子字符串(start 到 end 之间,包括 start 和 end),start 和 end 为字符索引,从0开始。

getrange(key, start, end):返回名称为 key 的 string 的子字符串(start 到 end 之间,包括 start 和 end),start 和 end 为字符索引,从0开始。

getset(key, value):将给定 key 的值设为 value ,并返回 key 的旧值(old value)。

mset(key1, value1, key2, value2, …, keyN, valueN):同时给多个 string 赋值,名称为 key i 的 string 赋值 value i。

mget(key1, key2,…, keyN):返回名称为 key1 到 keyN 的 string 的 value。

setex(key, seconds, value):给名称为 key 的 string 赋予值 value。同时设定过期时间 seconds,以秒计。

psetex(key, milliseconds, value):给名称为 key 的 string 赋予值 value。同时设定过期时间 milliseconds,以毫秒计。

setnx(key, value):如果不存在名称为 key 的 string,则向库中添加 string,名称为 key,值为 value。key 存在则不添加。

msetnx(key1, value1, key2, value2, …, keyN, valueN):同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。只要有一个 key 存在,所有的 key 都不会设置。

strlen(key):返回 key 所储存的字符串值 value 的长度。

incr(key):名称为 key 的 value 增1操作。该 value 必须为整数,否则报错。

incrby(key, integer):名称为 key 的 value 增加 integer。该 value 必须为整数,否则报错。

incrbyfloat(key, float):名称为 key 的 value 增加 float。该 value 必须为数字,否则报错。这个主要是能添加浮点量。

decr(key):名称为 key 的 value 减1操作。该 value 必须为整数,否则报错。

decrby(key, integer):名称为 key 的 value 减少 integer。该 value 必须为整数,否则报错。

append(key, value):名称为 key 的 string 的值末尾附加 value。返回新 value 字符串的长度。

3、对List操作的命令

有序可重复

rpush(key, value1, ..., valueN):在名称为 key 的 list 尾添加值为 value1 到 valueN 的元素。

lpush(key, value1, ..., valueN):在名称为 key 的 list 头添加值为 value1 到 valueN 的元素。

rpushx(key, value):为已存在的列表 key 尾部添加 value,返回添加后列表的长度。不存在则不添加,返回0。

lpushx(key, value):为已存在的列表 key 头部添加 value,返回添加后列表的长度。不存在则不添加,返回0。

linsert(key, before|after, pivot, value):在名称为 key 的 list 指定元素 pivot 的前面或者后面插入元素 value。如果指定元素 pivot 不存在,则返回-1,存在则返回插入元素后列表的总元素个数。

llen(key):返回名称为 key 的 list 的长度。

lrange(key, start, end):返回名称为 key 的 list 中 start 至 end 之间的元素(包括 start 和 end,下标从0开始。下同)。

ltrim(key, start, end):截取名称为 key 的 list,保留 start 至 end 之间的元素,对原列表进行了修改。

lindex(key, index):返回名称为 key 的 list 中 index 位置的元素。

lset(key, index, value):给名称为 key 的 list 中 index 位置的元素赋值为 value,index 必须为列表中已有的下标。

lrem(key, count, value):在名称为 key 的 list 中 删除 count 个值为 value 的元素。count 为 0,删除所有值为value的元素,count > 0 从头至尾删除 count 个值为 value 的元素,count < 0 从尾到头删除 |count| 个值为 value 的元素。

lpop(key):返回并删除名称为 key 的 list 中的首元素。也就是将该列表中第一个元素返回,并且在列表中删除该元素。

rpop(key):返回并删除名称为 key 的 list 中的尾元素。也就是将该列表中最后一个元素返回,并且在列表中删除该元素。

blpop(key1, key2, …, keyN, timeout):lpop 命令的 block 版本。即当 timeout 为 0 时,若遇到名称为 key i 的 list 不存在或该 list 为空,则命令结束。如果 timeout > 0,则遇到上述情况时,等待 timeout 秒,如果问题没有解决,则对 key i+1 开始的 list 执行 lpop 操作。

brpop(key1, key2,… keyN, timeout):rpop 命令的 block 版本。参考上一命令。

rpoplpush(srckey, dstkey):返回并删除名称为 srckey 的 list 的尾元素,并将该元素添加到名称为 dstkey 的 list 的头部。

brpoplpush(srckey, dstkey, timeout):返回并删除名称为 srckey 的 list 的尾元素,并将该元素添加到名称为 dstkey 的 list 的头部。 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

4、对Set操作的命令

无序不可重复

sadd(key, member1, ..., memberN):向名称为 key 的 set 中添加元素 member1 到 memberN。

srem(key, member1, ..., memberN):删除名称为 key 的 set 中的元素 member1 到 memberN。

srandmember(key, count):随机返回名称为 key 的 set 的一个或多个(count)元素。不写 count 时默认为1。

spop(key):随机返回并删除名称为 key 的 set 中一个元素。

scard(key):返回名称为 key 的 set 的元素个数。

smembers(key):返回名称为 key 的 set 的所有元素。

smove(srckey, dstkey, member):将 member 元素从名称为 srckey 的 set 集合移到名称为 dstkey 的 set 集合。

sismember(key, member):测试 member 是否是名称为 key 的 set 的元素,是的话返回1,不是的话返回0。

sinter(key1, key2, …, keyN):返回名称为key1 到 keyN 的 set 集合的交集。

sinterstore(dstkey, key1, key2, …, keyN):求名称为key1 到 keyN 的 set 集合的交集并将交集保存到名称为 dstkey 的 set 集合。返回交集元素的个数。

sunion(key1, key2, …, keyN):返回名称为key1 到 keyN 的 set 集合的并集。

sunionstore(dstkey, key1, key2, …, keyN):求名称为key1 到 keyN 的 set 集合的并集并将并集保存到名称为 dstkey 的 set 集合。返回并集元素的个数。

sdiff(key1, key2, …, keyN):返回名称为key1 到 keyN 的 set 集合的差集。

sdiffstore(dstkey, key1, key2, …, keyN) :求名称为key1 到 keyN 的 set 集合的差集并将差集保存到名称为 dstkey 的 set 集合。返回差集元素的个数。

5、对Zset操作的命令

有序不可重复(sorted set)

zadd(key, score1, member1, ..., scoreN, memberN):向名称为 key 的 zset 中添加元素 member1 到 memberN。如果该元素已经存在,则该元素的 score 更新为新的score。(score用于排序,为数字),返回新加元素的个数。

zincrby(key, increment, member):向名称为 key 的 zset 中添加元素 member,其 score 值为 increment,返回 score。如果该元素已经存在,则该元素的 score 增加 increment,返回更新后的 score。

zrem(key, member1, ... memberN):删除名称为 key 的 zset 中的元素 member1 到 memberN。

zcard(key):返回名称为 key 的 zset 元素的个数。

zscore(key, element):返回名称为 key 的 zset 中元素 element 的 score。元素不存在返回 null。

zcount(key, min, max):计算名称为 key 的 zset 中 score >= min 且 score <= max 的所有元素的总数。

zrank(key, member):返回名称为 key 的 zset(元素已按 score 从小到大排序)中 member 元素的 rank(即 index,从0开始),若没有 member 元素,返回 null。

zrevrank(key, member):返回名称为 key 的 zset(元素已按 score 从大到小排序)中 member 元素的 rank(即 index,从0开始),若没有 member 元素,返回 null。

zrange(key, start, end):返回名称为 key 的 zset(元素已按 score 从小到大排序)中的 index 从 start 到 end 的所有元素。

zrevrange(key, start, end):返回名称为 key 的 zset(元素已按 score 从大到小排序)中的 index 从 start 到 end 的所有元素。

zrangebyscore(key, min, max):返回名称为 key 的 zset 中 score >= min 且 score <= max 的所有元素。

zremrangebyrank(key, min, max):删除名称为 key 的 zset(元素已按 score 从小到大排序) 中 rank >= min 且 rank <= max 的所有元素。

zremrangebyscore(key, min, max):删除名称为 key 的 zset 中 score >= min 且 score <= max 的所有元素。

zunionstore / zinterstore(dstkeyN, key1, …, keyN, WEIGHTS w1, …, wN, AGGREGATE SUM|MIN|MAX):对 N 个 zset 求并集/交集,并将最后的集合保存在 dstkeyN 中。对于集合中每一个元素的 score,在进行 AGGREGATE 运算前,都要乘以对应的 WEIGHTS 参数。如果没有提供WEIGHTS,默认为1。默认的 AGGREGATE 是 SUM,即结果集合中元素的 score 是所有集合对应元素进行 SUM 运算的值,而 MIN 和 MAX 是指结果集合中元素的 score 是所有集合对应元素中最小值和最大值。

6、对Hash操作的命令

hset(key, field, value):向名称为 key 的 hash 中添加元素 field<—>value。

hget(key, field):返回名称为 key 的 hash 中 field 对应的 value。

hsetnx(key, field, value):在名称为 key 的 hash 中如果不存指定的 field,则添加元素 field<—>value。反之不添加。

hmset(key, field1, value1, …, fieldN, valueN):向名称为 key 的 hash 中添加元素 field1<—>value1 到 fieldN<—>valueN。

hmget(key, field1, …, fieldN):返回名称为 key 的 hash 中 field1 到 findN 对应的value。

hincrby(key, field, integer):将名称为 key 的 hash 中 field 的 value 增加 integer,注意 value 类型必须为 integer。

hincrbyfloat(key, field, float):将名称为 key 的 hash 中 field 的 value 增加 float,注意 value 类型必须为数字。和上面的区别是能增加浮点量。

hexists(key, field):判断名称为 key 的 hash 中是否存在键为 field 的域,返回 0 或者 1。

hdel(key, field):删除名称为 key 的 hash 中键为 field 的域,返回删除的数量。

hlen(key):返回名称为 key 的 hash 中元素个数。

hkeys(key):返回名称为 key 的 hash 中所有键 field。

hvals(key):返回名称为 key 的 hash 中所有值 value。

hgetall(key):返回名称为 key 的 hash 中所有的键 field 及其对应的值 value。

7、对HyperLogLog操作的命令

描述

Redis 在 2.8.9 版本添加了 HyperLogLog 结构。

Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。

在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。

命令

pfadd(key, element1, ..., elementN):添加指定元素到 HyperLogLog 中。

l-zcgredis5:1>pfadd runoobkey "redis" "mongodb" "mysql"
""
l-zcgredis5:1>pfadd runoobkey1 "redis" "mongodb" "mysql" "mysql"
""

pfcount(key1, ..., keyN):返回给定的 HyperLogLog 的基数估算值。

l-zcgredis5:1>pfcount runoobkey1 runoobkey
""

pfmerge(destkey, sourcekey1, ..., sourcekeyN):将多个 HyperLogLog 合并为一个 HyperLogLog。

l-zcgredis5:1>pfmerge myhll runoobkey runoobkey1
"OK"

8、发布订阅命令

psubscribe(pattern1, ..., patternN):订阅一个或者多个给定模式的频道。

punsubscribe(pattern1, ..., patternN):退订所有给定模式的频道。

subscribe(channel1, ..., channelN):订阅给定的一个或多个频道。

unsubscribe(channel1, ..., channelN):退订给定的一个或多个频道。

pubsub(subcommand, argument):查看订阅与发布系统状态。

publish(channel, message):将信息发送到指定的频道。

9、事务命令

描述

Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:

  • 批量操作在发送 EXEC 命令前被放入队列缓存。
  • 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
  • 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。

一个事务从开始到执行会经历以下三个阶段:

  • 开始事务。
  • 命令入队。
  • 执行事务。

单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。

事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。

命令

discard:取消事务,放弃执行事务块内的所有命令。

exec:执行所有事务块内的命令。

multi:标记一个事务块的开始。

unwatch:取消 WATCH 命令对所有 key 的监视。

watch(key1, ..., keyN):监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。

示例

如果在 set b 处失败,set a 已成功不会回滚,set c 还会继续执行。

l-zcgredis5:1>multi
"OK" l-zcgredis5:1>set a aaa
"QUEUED" l-zcgredis5:1>set b bbb
"QUEUED" l-zcgredis5:1>set c ccc
"QUEUED" l-zcgredis5:1>exec
1) "OK"
2) "OK"
3) "OK"
l-zcgredis5:1>

10、脚本命令

描述

Redis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL

命令

eval(script, numkeys, key1, ..., keyN, arg1, ..., argN):执行Lua脚本。

evalsha(sha1, numkeys, key1, ..., keyN, arg1, ..., argN):执行 Lua 脚本。

script exists(script1, ..., scriptN):查看指定的脚本是否已经被保存在缓存当中。

script flush:从脚本缓存中移除所有脚本。

script kill:杀死当前正在运行的 Lua 脚本。

script load(script):将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。

示例

l-zcgredis5:1>EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
1) "key1"
2) "key2"
3) "first"
4) "second"
l-zcgredis5:1>

11、连接命令

quit:关闭当前连接

auth(password):验证密码是否正确。

echo(message):打印 message 字符串。

select(index):切换到指定的数据库。

ping:查看服务是否运行。

l-zcgredis5:1>ping
"PONG"

12、服务器命令

client kill(ip:port):关闭客户端连接。

client list:获取连接到服务器的客户端连接列表。

client setname(connection-name):设置当前连接的名称。

client getname:获取连接的名称。

client pause(timeout):在指定时间内终止运行来自客户端的命令。

cluster slots:获取集群节点的映射数组。

command:获取 Redis 命令详情数组。

command count:获取 Redis 命令总数。

command getkeys:获取给定命令的所有键。(不清楚)

command info(command-name1, ..., command-nameN):获取指定Redis命令描述的数组。

time:返回当前服务器时间。一个包含两个字符串的列表: 第一个字符串是当前时间(以 UNIX 时间戳格式表示),而第二个字符串是当前这一秒钟已经逝去的微秒数。

config get(parameter):获取指定配置参数的值,parameyer 为 * 的时候,获取所有配置信息。

config rewrite:对启动 Redis 服务器时所指定的 redis.conf 配置文件进行改写。

config set(parameter, value):修改 redis 配置参数,无需重启。

config resetstat:重置 INFO 命令中的某些统计数据。

dbsize:返回当前数据库中 key 的数量。

debug object(key):获取 key 的调试信息。

debug segfault:执行一个非法的内存访问从而让 Redis 崩溃,仅在开发时用于 BUG 调试。

flushdb:删除当前数据库中的所有 key。

flushall:删除所有数据库中的所有key。

info(section):获取Redis服务器的各种信息和统计数值。section 为空的话会显示所有信息,section 值为 Server、Clients、Memory、Persistence、Stats、Replication、CPU、Keyspace。

save:将数据同步保存到磁盘。

lastsave:返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示。

bgsave:将数据异步保存到磁盘。

bgrewriteaof:异步执行一个 AOF(AppendOnly File) 文件重写操作。

monitor:实时打印出 Redis 服务器接收到的命令,调试用。实时转储收到的请求。

role:返回主从实例所属的角色。

shutdown:将数据同步保存到磁盘,然后关闭服务。

slaveof(ip:port):改变复制策略设置。将当前服务器转变为指定服务器的从属服务器(slave server)。如果当前服务器已经是某个主服务器(master server)的从属服务器,那么执行 SLAVEOF host port 将使当前服务器停止对旧主服务器的同步,丢弃旧数据集,转而开始对新主服务器进行同步。

slave no one:对一个从属服务器执行命令 SLAVEOF NO ONE 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。利用『 SLAVEOF NO ONE 不会丢弃同步所得数据集』这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行。

slowlog :管理 redis 的慢日志。

sync:用于复制功能(replication)的内部命令。用于同步主从服务器。

Redis 客户端命令总结的更多相关文章

  1. Redis客户端命令

    Redis客户端命令 Redis 命令用于在 redis 服务上执行操作. 要在 redis 服务上执行命令需要一个 redis 客户端.Redis 客户端在我们之前下载的的 redis 的安装包中. ...

  2. Redis学习总结之三——Redis客户端命令

    Windows命令行启动Redis客户端 1. 使用默认IP地址和端口连接Redis数据库(IP地址:127.0.0.1,端口号6379) redis-cli 2. 使用指定IP地址和端口连接Redi ...

  3. redis 客户端命令

    Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接 1 .CLIENT LIST 返回连接到 redis 服务的客户端列表 2 .CLIENT SETNA ...

  4. Netty开发redis客户端,Netty发送redis命令,netty解析redis消息

    关键字:Netty开发redis客户端,Netty发送redis命令,netty解析redis消息, netty redis ,redis RESP协议.redis客户端,netty redis协议 ...

  5. Redis客户端、服务端的安装以及命令操作

    目的: redis简介 redis服务端安装 redis客户端安装 redis相关命令操作 redis简介 官网下载(https://redis.io/) Redis 是完全开源免费的,遵守BSD协议 ...

  6. 大数据学习day31------spark11-------1. Redis的安装和启动,2 redis客户端 3.Redis的数据类型 4. kafka(安装和常用命令)5.kafka java客户端

    1. Redis Redis是目前一个非常优秀的key-value存储系统(内存的NoSQL数据库).和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list ...

  7. StackExchange.Redis客户端读写主从配置,以及哨兵配置。

    今天简单分享一下StackExchange.Redis客户端中配置主从分离以及哨兵的配置. 关于哨兵如果有不了解的朋友,可以看我之前的一篇分享,当然主从复制文章也可以找到.http://www.cnb ...

  8. Redis常用命令(String数据类型)

    一.概述:      字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中 ...

  9. c#实现redis客户端(一)

    最近项目使用中要改造redis客户端,看了下文档,总结分享一下. 阅读目录: 协议规范 基础通信 状态命令 set.get命令 管道.事务 总结 协议规范 redis允许客户端以TCP方式连接,默认6 ...

随机推荐

  1. python入门学习1

    实学习每一种语言,都可以找到很快乐的学习方法.有兴趣,有乐趣,才会一直想学.知道print().input().if/else就可以做一个简陋的游戏了. print() # 打印函数,将信息打印出来 ...

  2. Java语法 [HelloWorld]

    程序代码: public class lqx {// AAAAANBBBBCKJKSLJIOQL/*请手打哦!*/ public static void main (String[] args) { ...

  3. Linux下修改Tomcat默认端口

    假设tomcat所在目录为/usr/local/apache-tomcat/ 1.打开tomcat配置文件#vi /usr/local/apache-tomcat/conf/server.xml 2. ...

  4. PXC 搭建高可用集群

    (1).PXC集群注意事项 1.PXC集群只支持innodb引擎 2.

  5. 图片的滑动缩放html、css、js代码

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. springmvc shiro UnauthorizedException 异常解决方案

    springMVC 整合 shiro 时,配置了当访问某个URL没有权限时的配置处理: <!-- 通过unauthorizedUrl指定没有权限操作时跳转页面 --><propert ...

  7. properties文件读写工具类

    java代码: import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; ...

  8. ProxyHandler处理器(代理设置)

    很多网站会检测某一段时间某个IP的访问次数(通过流量统计,系统日志等),如果访问的次数多得不像正常人,它会禁止这个IP的访问. 所以我们可以设置一些代理服务器,每个一段时间换一个代理,就算IP被禁止, ...

  9. VMware12上安装CentOS7无法上网问题

    常安装使用VMware的搭建集群环境,VMare安装后虚拟机默认的是自动获取IP,有时候用的过程中突然XSHELL中断或者需要固定IP上网,遇到几次居然,但忘了步骤,总结一下,省的每次去找资料 环境配 ...

  10. 算法练习LeetCode初级算法之链表

    删除链表中的节点 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode ne ...