look321 发表于 2018-11-4 12:10:34

redis内存数据丢失问题

  Note:建议在开发环境中在使用windows下的Redis,如果在正式生产环境中建议使用Linux下的Redis
  1.在启动Redis服务之前,先了解一下Redis相关可执行文件的主要作用
  (1)redis-server-------Redis服务器
  (2)redis-cli         -------Redis命令行客户端
  (3)redis-benchmark ---------Redis性能测试工具
  (4)redis-check-aof ----------AOF文件修复工具
  (5)redis-check-dump --------RDB文件检查工具
  2.启动Redis服务(主要有两种方式)
  直接启动和 通过初始化脚本 (开机启动) 启动,两种当时分别适用于开发环境和生产环境
  (1)直接启动(windows环境)
  打开命令行客户端,进入redis的所在文件夹,
  执行命令:redis-server.exe redis.conf
  (2)linux直接启动
  执行命令:redis-server-port 6379(注:端口可以不指定,默认开启6379端口)
  3.关闭redis服务
  考虑到redis正在将内存中的数据拷贝到硬盘,所以强行终止进程可能导致数据丢失,所以争取的方式之一是通过客户端发送 shutdown命令,服务器在收到shutdown命令后,先断开所有客户端的连接,再根据配置持久化数据,再关闭Redis服务
  redis可以妥善处理sigterm信号,多以Kill Redis的进程也可以关闭redis,效果金额发送 shutdown命令有同样的效果
  4.redis客户端的简单使用
  (1)连接redis服务器
  redis-cli-h 127.0.0.1 -p 3697
  (2) 可以输入ping命令,测试是否正确连接redis服务器
  如果返回 pong,说明客户端可以正确连接redis服务器
  5.状态回复
  状态回复是客户端向服务器发送命令,服务器收到并处理后,返回给客户端的一些讯息
  (1)状态回复
  如,向服务器 发送 ping
  服务器收到信息后 给客户端回复pong,
  如 向服务器,发送setname张乐超,
  服务器会向客户端发送ok,表示 以name为key,张乐超为值的键值对 数据 已经成功存入 redis
  (2)错误回复
  如果向redis服务器发送错误信息,错误指令,
  redis 会向 客户端回复(error)err unknown commond "指令",表示redis不认识此指令
  (3)整数回复
  redis 没有整数类型,但是提供了一些返回整数的指令,整数回复以(integer)开头,如:
  INCR会以整数的形式 返回递增后的数值,INCR foo,如果redis中存在foo的value,将会对foo的值进行自增并返回,没有foo的值,将会添加以foo为key,vaue为0的数据。
  DBSIZE 命令 返回所有键值对的 数量,
  (4)字符串回复
  字符串回复是最常用的回复方式,例如:get name,返回“张乐超”,如果不存在,则返回kongnil
  (5)多行字符串回复
  如命令,keys *,
  keys (pattern)
  ? 代表任意一个字符
  * 代表任意多个字符
  \x 匹配字符x,\ 用于转义
  [] 匹配 括号见任意一字符,可以用 - 代表区间,如a-z,
  将返回所有 格式符合通配符*的所有key

页: [1]
查看完整版本: redis内存数据丢失问题