Redis开发运维实践常见运维操作(一)

3.1 启动

3.1.1 启动redis


常见选项: ./redis-server (run the server with default conf) ./redis-server /etc/redis/6379.conf ./redis-server --port 7777 ./redis-server --port 7777 --slaveof 127.0.0.1 8888 ./redis-server /etc/myredis.conf --loglevel verbose

3.1.2 启动redis-sentinel


部署后可以使用sstart对redis 和sentinel进行拉起,使用sctl进行supervisorctl的控制。(两个alias)

3.2 停止


sentinel方法一样,只是需要执行sentinel的连接端口

注意:正确关闭服务器方式是redis-cli shutdown 或者 kill,都会graceful shutdown,保证写RDB文件以及将AOF文件fsync到磁盘,不会丢失数据。 如果是粗暴的Ctrl+C,或者kill -9 就可能丢失。如果有配置save,还希望在shutdown时进行RDB写入,那么请使用shutdown save命令。

3.3 查看和修改配置

查看:


修改:

 

3.4 批量执行操作

使用telnet也可以连接redis-server。并且在脚本中使用nc命令进行redis操作也是很有效的:


另一个方式是使用pipeline:

 

3.5 选择数据库


默认连接的数据库所有是0,默认数据库数是16个。返回1表示成功,0失败

3.6 清空数据库


删除当前选择数据库中的所有 key。生产上已经禁止。


删除所有的数据库。生产上已经禁止。


Redis开发运维实践指南

本文为《Redis开发运维实践指南》内容,该书作者为黄鹏程,已授权转载。

时间: 2024-10-22 07:06:44

Redis开发运维实践常见运维操作(一)的相关文章

Redis开发运维实践常见运维操作(二)

重命名命令 3.7 重命名命令 例如:rename-command FLUSHALL "".必须重启 3.8 执行lua脚本 例如: redis-cli --eval myscript.lua key1 key2 , arg1 arg2 arg3 3.9 设置密码 config set requirepass [passw0rd] 3.10 验证密码 3.11 性能测试命令 比如:开100条线程(默认50),SET 1千万次(key在0-1千万间随机),key长21字节,value长2

Redis开发运维实践高可用和集群架构与实践(二)

11.1.2 环境搭建 11.1.2.1 部署架构 部署架构上采用三台机器,一个Master接受写请求,两个Slave进行数据同步,三台机器上都部署sentinel(一般为奇数个,因为需要绝大部分进行投票才能failover).(官方示例)具体架构如下图: 注意:如果有条件可以将sentinel多部署几个在客户端所在的应用服务器上,而不是与从节点部署在一起,这样避免整机宕机后sentinel和slave都减少而导致的切换选举sentinel无法超过半数. 11.1.2.2 网络规划 redis高

Redis开发运维实践专题功能之流水线

3.3 流水线 利用流水线(pipeline)的方式从client打包多条命令一起发出,不需要等待单条命令的响应返回,而redis服务端会处理完多条命令后会将多条命令的处理结果打包到一起返回给客户端: cat data.txt | redis-cli –pipe 在选择开源redis开发库时需要着重注意是否支持pipeline,常见的jedis可以支持. 在部署架构是网络多跳的时候需要注意使用pipeline提高处理效率. Redis开发运维实践指南 本文为<Redis开发运维实践指南>内容,

Redis开发运维实践数据操作之集合操作

2.4.1 添加元素 sadd key member 成功返回1,如果元素以及在集合中返回0,key对应的set不存在返回错误 2.4.2 移除元素 srem key member 成功返回1,如果member在集合中不存在或者key不存在返回0,如果key对应的不是set类型的值返回错误 2.4.3 删除并返回元素 spop key 如果set是空或者key不存在返回nil 2.4.4 随机返回一个元素 srandmember key 同spop,随机取set中的一个元素,但是不删除元素 2.

Redis开发运维实践开发者设计规范之典型使用场景参考

4.6 典型使用场景参考 下面是Redis适用的一些场景: 1. 取最新 N 个数据的操作 比如典型的取你网站的最新文章,通过下面方式,我们可以将最新的 5000条评论的ID放在Redis的List集合中,并将超出集合部分从数据库获取. 使用LPUSH latest.comments命令,向 list集合中插入数据 插入完成后再用 LTRIM latest.comments 0 5000 命令使其永远只保存最近5000个 ID 然后我们在客户端获取某一页评论时可以用下面的逻辑 FUNCTION

Redis开发运维实践上线部署规划之内存规划

5.1 内存.CPU规划 一定要设置最大内存maxmemory参数,否则物理内存用爆了就会大量使用Swap,写RDB文件时的速度很慢.注意这个参数指的是info中的used_memory,在一些不利于jmalloc的时候,内存碎片会很大. 多留55%内存是最安全的.重写AOF文件和RDB文件的进程(即使不做持久化,复制到Slave的时候也要写RDB)会fork出一条新进程来,采用了操作系统的Copy-On-Write策略(子进程与父进程共享Page.如果父进程的Page-每页4K有修改,父进程自

Redis开发运维实践数据操作之列表操作

2.3.1 添加元素 lpush key string 在key对应list的头部添加字符串元素,返回1表示成功,0表示key存在且不是list类型.注意:江湖规矩一般从左端Push,右端Pop,即LPush/RPop. lpushx 也是将一个或者多个value插入到key列表的表头,但是如果key不存在,那么就什么都不在,返回一个false[rpushx也是同样] rpush key string 同上,在尾部添加 linsert 在key对应list的特定位置之前或之后添加字符串元素 ,

Redis开发运维实践指南数据操作之key操作

数据操作 熟悉每个数据操作前一定要明白每个操作都是代价,以时间复杂度和对应查询集或者结果集大小为衡量.时间复杂度收敛状况如下: 2.1.1 列出key keys *user* keys * 有3个通配符 *, ? ,[] *: 通配任意多个字符 ?: 通配单个字符 []: 通配括号内的某1个字符 注:生产已经禁止.更安全的做法是采用scan,原理和操作如下: 针对Keys的改进,支持分页查询Key.在迭代过程中,Keys有增删时不会要锁定写操作,数据集完整度不做任何保证,同一条key可能会被返回

Redis开发运维实践专题功能之排序

3.1 排序 redis支持对list,set和sorted set元素的排序.排序命令是sort 完整的命令格式如下: + SORT key [BY pattern] [LIMIT start count] [GET pattern] [ASC|DESC] [ALPHA] [STORE dstkey] 复杂度为O(N+M*log(M)).(N是集合大小,M 为返回元素的数量) 说明: [ASC|DESC] [ALPHA]: sort默认的排序方式(asc)是从小到大排的,当然也可以按照逆序或者