Redis

高性能的缓存数据库,能够在高并发场景下应用提供高效的数据访问能力,因而在各类互联网应用中被广泛运用。

目前的互联网应用广泛使用两种方式来进行数据存储,关系型数据库和 NoSQL 数据库。

  1. 关系型数据库是指采用关系模型来组织数据的数据库,主要用于存储格式化的数据结构,大量传统数据库库如:MySQL、Oracle……
  2. NoSQL 数据库泛指非关系型数据库,主要服务于特定背景的专用数据库,对外提供的是特定的 API,而非通用的 SQL 接口。数据访问更加高效。

Redis 是一个开源的 key-value 数据库,属于 NoSQL 数据库, 按照键值对的结构对数据进行存储。

数据都是缓存在内存中,并基于内存操作,故性能较高。支持的存储的 value 类型更多,包括 string、list、set、zset 和 hash。

Redis 会周期性地把更新的数据写入磁盘或把修改操作写入追击的记录文件,并且在此基础上实现了主从同步,数据可以由主服务器同步到任意数量的从服务器上。Redis 支持主从,保证了数据服务的高性能和高可用。

Redis 常用的命令
  • auth 命令
  • 在访问受密码保护的 Redis 服务时,客户端先需要进行密码认证,否则无权执行其他 Redis 命令

语法 :auth password

  • set 命令
  • Redis 是以 key-value 的格式来存储数据,而 set 命令即被用来设置 key 以保存 value。

语法 :set key value [ex seconds | px millseconds] [nx|xx]

参数介绍如下:

  1. ex seconds:设置指定的过期时间 seconds,seconds 是以秒为单位的数字。
  2. px millseconds:设置指定的过期时间 millseconds,millseconds 是以毫秒为单位的数字。
  3. nx:仅在 key 不存在时设置该 key。
  4. xx:仅在 key 已存在时设置该 key。

注意

如果 key 已经保存了一个值,则 set 命令执行成功时,无论其类型如何,都会被覆盖。

  • get 命令
  • 获取 key 对应的 value。如果 key 不存在,则返回特殊值 nil,如果存储在 key 中的值不是字符串,则返回错误,因为 get 仅处理字符串值。

语法:get key

  • exists 命令
  • 判断指定的 key 是否存在。从 Redis3.0.3 开始,可以指定多个 key,而不仅是单个 key。

语法:exists key1 [key2……]

仅指定一个 key 时,如果 key 存在则返回 1, 不存在则返回 0。当指定多个 key 时,它返回存在的 key 的总数。

  • keys 命令
  • 返回和 pattern (模式)匹配的所有 key。

语法:keys pattern

支持的常用模式如下:

- h?llo:匹配单个字符,如 hello、hallo、hxllo等;
- h*llo:匹配任意字符,如 hllo、heeeello等;

- h[ae]llo:包含一个指定字符:如 hello 或 hallo;
- h[^ae]llo:包含除指定字符外的一个字符,如 hbllo、hcllo等,但不包含 hallo 和 hello;
- h[a-c]llo:匹配指定范围内的一个字符,如 hallo、hbllo 和 hcllo;

如需匹配以上模式中的特殊字符,则需使用 \ 转义,如要匹配 * 字符,应使用 \*;

  • del 命令
  • 删除指定的 key,返回已删除的 key 的数量,如果 key 不存在,则忽略改 key。

语法:del key1 [key2……]

  • rename 命令
  • 将 key 重命名为 newkey,当 key 不存在时返回错误。如果 newkey 已经存在,则会被覆盖(此时 rename 执行隐式 del 操作)。

语法:rename key newkey

  • expire 命令
  • 在 key 上设置超时时间 timeout,时间以秒为单位,若 key 超时将被自动删除,若设置成功则返回 1;若 key 不存在则返回 0。

语法:expire key timeout

注意

  1. 如果设置一个非正的 timeout 参数,将导致 key 被删除。
  2. 对已经设置了超时时间的 key 调用 expire 命令,该 key 的超时时间将更新为新值。
  3. 删除 key 或覆盖 key 的内容会清除该 key 的超时设置,如 del、set 操作。
  4. 如果已使用 rename 命令重命名 key,则相关的剩余生存时间将转移到新 key。
  • ttl 命令
  • 以秒为单位返回 key 的剩余生存时间。如果 key 未设置超时时间则返回 -1,如果key不存在则返回 -2。而对于 Redis 2.6 及以下版本,当未设置超时时间和 key 不存在时均返回 -1。

语法:ttl key

  • persist 命令
  • 删除 key 上现有的超时设置,使 key 变为永久有效。如果超时设置被删除,则返回 1, 如果 key 不存在或没有管理的超时设置,则返回 0。

语法:persist key

  • select 命令
  • select 命令用于选择具有指定 dbid 的 Redis 逻辑数据库

语法:select dbid

  • flushdb 命令
  • 该命令用于删除当前所选数据库中的所有 key

语法:flushadb

  • flushall 命令
  • 该命令用于删除现有所有数据库中的 key,而不仅仅是当前选定的数据库中的 key。

语法:flushall

  • quit 命令
  • 该命令要求服务器关闭连接,一旦所有待处理的回复都返回客户端,连接就会关闭。

语法:quit

通过 msi 格式的安装版可以将 Redis 直接安装成 Windows 服务,并可通过 redis.windows-service.conf 文件配置其他参数,而解压缩版的 Redis 则需要通过命令将 redis-server.exe 注册为服务

命令如下:

redis-server --service-install redis.windows.conf --loglevel verbose
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值