首页编程redis 命令 redis命令是什么

redis 命令 redis命令是什么

编程之家 2023-11-01 182次浏览

你是否曾想过,redis 命令和redis命令是什么之间是否存在联系?在本文中,小编将为您探索它们之间的关系,带您领略新的视角和见解。

redis 命令 redis命令是什么

redis 命令执行过程

redis数据淘汰原理

redis过期数据删除策略

redis server事件模型

redis cluster mget引发的讨论

redis 3.x windows集群搭建

redis命令执行过程

redis 命令 redis命令是什么

redis string底层数据结构

redis list底层数据结构

redis hash底层数据结构

redis set底层数据结构

redis zset底层数据结构

redis客户端管理

redis 命令 redis命令是什么

redis主从同步-slave端

redis主从同步-master端

redis主从超时检测

redis aof持久化

redis rdb持久化

redis数据恢复过程

redis TTL实现原理

redis cluster集群建立

redis cluster集群选主

 这篇文章的目的是为了描述redis server在处理client命令的执行过程,大概包括流程图、源码、以及redis的命令格式说明,redis的通信协议参考自redis的官网。

 整个redis的server端命令执行过程就如下面这个流程图:

 nread= read(fd, c->querybuf+qblen, readlen);负责读取命令数,通过processInputBuffer进行下一步处理。

 核心在于processInlineBuffer处理内联命令,processMultibulkBuffer处理批量命令包括get/set等,核心的processCommand用于执行命令。

 执行命令的过程其实主要是寻找命令对应的执行函数,通过lookupCommand查找对应的执行命令,通过call执行命令。

 负责执行命令 c->cmd->proc并更新统计信息,执行完成后负责同步数据 propagate。

 主要是负责同步数据到AOF文件和slave节点,feedAppendOnlyFile负责同步到AOF文件,replicationFeedSlaves负责同步

 AOF涉及的缓存有多份,包括

 包含了命令和对应执行函数的映射关系,应该看上去很清晰命令。

协议的一般格式如下,注意前面的*或者$等字符,结尾的\r\n是分隔符。

其中,回复中的第二个元素为空。

redis基本操作命令

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set--有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

MULTI

说明:

标记一个事务块的开始。

事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC命令原子性(atomic)地执行。

返回值:

总是返回 OK。

示例:

DISCARD

说明:

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

如果正在使用 WATCH命令监视某个(或某些) key,那么取消所有监视,等同于执行命令 UNWATCH。

返回值:

总是返回 OK。

示例:

WATCH

说明:

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

返回值:

总是返回 OK。

UNWATCH

说明:

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

如果在执行 WATCH命令之后, EXEC命令或 DISCARD命令先被执行了的话,那么就不需要再执行 UNWATCH了。

因为 EXEC命令会执行事务,因此 WATCH命令的效果已经产生了;而 DISCARD命令在取消事务的同时也会取消所有对 key的监视,因此这两个命令执行之后,就没有必要执行 UNWATCH了。

返回值:

总是返回 OK。

EXEC

说明:

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

假如某个(或某些) key正处于 WATCH命令的监视之下,且事务块中有和这个(或这些) key相关的命令,那么 EXEC命令只在这个(或这些) key没有被其他命令所改动的情况下执行并生效,否则该事务被打断(abort)。

返回值:

事务块内所有命令的返回值,按命令执行的先后顺序排列。

当操作被打断时,返回空值 nil。

示例:

Redis提供了简单的事务,之所以说它简单,主要是因为它不支持事务中的回滚特性,同时无法实现命令之间的逻辑关系计算,当然也体现了 Redis的“keep it simple”的特性。

Redis启动、停止、Redis命令行的操作

1.redis命令

1 redis执行了make install后,redis的课执行文件都会自动复制到/usr/local/bin目录

2 redis-server redis服务器

3 redis-cli redis命令行客户端

4 redis-benchmark redis性能测试工具

5 redis-check-aof aof文件修复工具6redis-check-dump rdb文件检查工具

2.停止 redis命令 

#停止Redis命令

redis-cli shutdown

3.启动 redis命令

(1).#启动 redis-server

redis-server

(2).#带配置文件启动

(3).#带配置文件启动且指定某几个配置配置名称前加-- 

 会覆盖配置文件里面的值

回到顶部

4.redis命令行客户端

(1).发送命令

注意:框里面的是 6379里面没有登录成功,下面改成了 1123成功了,因为刚才上面改了端口

(2).命令返回值

状态回复:pong表示可用

错误回复:不知道这个什么命令

整数回复:多种命令会回复整数

下面的字符串回复,都是赋值了才有。

字符串回复:

多行字符串回复:

redis命令是什么

1、连接操作相关命令:

quit:关闭连接(connection)。

auth:简单密码认证。

2、value操作命令:

exists(key):确认key否存。

del(key):删除key。

type(key):返值类型。

使用的注意事项

1、 Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等。

2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。

3、虚拟内存–Redis当物理内存用完时,可以将一些很久没用到的value交换到磁盘。

4、过期策略–memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire设定,例如expire name 10。

感谢您的阅读!希望本文对解决您关于redis 命令的问题有所帮助。如果您还有其他疑问,欢迎随时向我们提问。

免费商业源码?求推荐一款开源免费商业使用的cms excel函数应用?EXCEL函数在生活中的应用有多广泛