什么样的网站利于seo,北京自助建站软件,企业网站维护服务,天猫网站设计特点Redis 命令
Redis 命令用于在 Redis 服务器上执行一些操作#xff0c;而命令运行的方式是通过客户端命令行来执行的#xff0c;这种方式也被称为“命令行模式”。因此想要在 Redis 服务器上运行命令#xff0c;您首先需要开启一个 Redis 客户端。操作方法如下#xff1a; …Redis 命令
Redis 命令用于在 Redis 服务器上执行一些操作而命令运行的方式是通过客户端命令行来执行的这种方式也被称为“命令行模式”。因此想要在 Redis 服务器上运行命令您首先需要开启一个 Redis 客户端。操作方法如下
语法
Redis 客户端的基本语法为
$ redis-cli
实例
以下实例讲解了如何启动 redis 客户端
启动 redis 服务器打开终端并输入命令 redis-cli该命令会连接本地的 redis 服务。
$ redis-cli
redis 127.0.0.1:6379
redis 127.0.0.1:6379 PINGPONG
在以上实例中我们连接到本地的 redis 服务并执行 PING 命令该命令用于检测 redis 服务是否启动。 在远程服务上执行命令
如果需要在远程 redis 服务上执行命令同样我们使用的也是 redis-cli 命令。
语法
$ redis-cli -h host -p port -a password
实例
以下实例演示了如何连接到主机为 127.0.0.1端口为 6379 密码为 mypass 的 redis 服务上。
$redis-cli -h 127.0.0.1 -p 6379 -a mypass
redis 127.0.0.1:6379
redis 127.0.0.1:6379 PINGPONG Redis key键
Redis 是一种键值key-value型的缓存型数据库它将数据全部以键值对的形式存储在内存中并且 key 与 value 一一对应。这里的 key 被形象的称之为密钥Redis 提供了诸多操作这把“密钥”的命令从而实现了对存储数据的管理。 您可以把 key 看成 value 的变量通过检索 key 就可以找到对应的 value 值。为了更加全面的了解 key我们将从以下三个维度做深入讲解
key 的类型key 的命名规范key 的过期时间
了解key的特点
1) key的类型
key 的类型对应着 value 的类型同样也有五种string、list、hash、set、zset。如果 key 指向的是一个字符串类型的值那么 key 的类型就是字符串。我们可以通过TYPE命令来查看 key 的类型示例如下
# 字符串
redis SET weather sunny
OK
redis TYPE weather
string# 列表
redis LPUSH book_list programming in scala
(integer) 1
redis TYPE book_list
list# 集合
redis SADD pat dog
(integer) 1
redis TYPE pat
set
2) key的命名规范
key 的命名需要遵循以下规则
key 取值不可以太长否则会影响 value 的查找效率并且浪费内存空间。key 取值也不能过短否则会使得 key 可读性变差。在 key 的取值上 Redis 官方建议使用“见名知意”的字符串格式因为这样便于我们理解 key 的含义。比如要现在存放一个用户的姓名其信息如下
idname01XiaoHong我们使用一个 key 来存储用户的名字key 的设置如下所示
127.0.0.1:6379 set user:id:01:username XiaoHong
OK
上述示例自定义了uesr:id:01:username这个 key通过 key 不仅可以知道用户的 id还可以知道这个 key 是用来存储用户名字的。注意这里的:只是起到分割符的作用并不是固定的语法格式。
注意在符合业务场景情况下key 要尽可能的简单明了您可以使用单词的缩写或者自定义缩写格式。
在 Redis 中我们也可以将一个空字符串设置成 key示例如下
127.0.0.1:6379 SET c.biancheng.net
OK
127.0.0.1:6379 GET
c.biancheng.net
key 的类型并不局限于字符串在 Redis 中 key 具有二进制安全的特性这意味着它可以使用任何二进制序列但是这种 key 过于复杂一般不建议采用。总之“见名知意”就是 key 最佳的命名规范。 对于相同数据类型而言如果您对已经存在的 key 重新设置了新的 value那么原来的 value 就会被覆盖掉。因此您可以用这种方法来修改 key 存储的值。
3) key过期时间
Redis 允许你为 key 设置一个过期时间使用 EXPIRE 等命令也就是“到点自动删除”这在实际业务中是非常有用的一是它可以避免使用频率不高的 key 长期存在从而占用内存资源二是控制缓存的失效时间。 Redis 会把每个设置了过期时间的 key 存放到一个独立的字典中并且会定时遍历这个字典来删除到期的 key。除了定时遍历之外它还会使用“惰性策略”来删除过期的 key。所谓“惰性策略”指的是当客户端访问这个 key 的时候Redis 对 key 的过期时间进行检查如果过期了就立即删除。Redis 使用两种方式相结合的方法来处理过去的 key。 过期时间有许多的应用场景比如购物 App 会在特定的时间节点推出相关的活动比如双十一、双十二、618购物节等这些活动都是一年一度如期开办因此当下一期举行时上一期的活动的数据就没有意义了在这种情景下就可以给 key 设置一个过期时间从而减少无用数据占用内存资源。
Redis key命令格式
了解完 key 的相关规范接下来看一下和 key 相关的命令它的语法格式如下所示
redis 127.0.0.1:6379 COMMAND KEY_NAME
COMMAND表示 key 的命令KEY_NAME表示 key 的名字。通过示例进一步说明DEL代表删除命令而 www.biancheng.net 是键。如果成功删除了键则将的返回整数 1否则将返回整数 0。示例如下
redis 127.0.0.1:6379 SET www.biancheng.net 编程帮你好
OK
#删除key
redis 127.0.0.1:6379 DEL www.biancheng.net
(integer) 1
#若键不存在删除失败
redis 127.0.0.1:6379 DEL age
(integer) 0
Redis键命令汇总
下表对常用的 Redis 键命令做了简单的总结
Redis 键命令命令说明DEL key若键存在的情况下该命令用于删除键。DUMP key用于序列化给定 key 并返回被序列化的值。EXISTS key用于检查键是否存在若存在则返回 1否则返回 0。EXPIRE key设置 key 的过期时间以秒为单位。EXPIREAT key该命令与 EXPIRE 相似用于为 key 设置过期时间不同在于它的时间参数值采用的是时间戳格式。PEXPIRE key设置 key 的过期以毫秒为单位。PEXPIREAT key与 PEXPIRE 相似用于为 key 设置过期时间采用以毫秒为单位的时间戳格式。KEYS pattern此命令用于查找与指定 pattern 匹配的 key。MOVE key db将当前数据库中的 key 移动至指定的数据库中默认存储为 0 库可选 1-15中的任意库。PERSIST key该命令用于删除 key 的过期时间然后 key 将一直存在不会过期。PTTL key用于检查 key 还剩多长时间过期以毫秒为单位。TTL key用于检查 key 还剩多长时间过期以秒为单位。RANDOMKEY从当前数据库中随机返回一个 key。RENAME key newkey修改 key 的名称。RENAMENX key newkey如果新键名不重复则将 key 修改为 newkey。SCAN cursor基于游标的迭代器用于迭代数据库中存在的所有键cursor 指的是迭代游标。TYPE key该命令用于获取 value 的数据类型。
常用命令演示
下面对一些较难理解的命令做实例演示
1) DUMP序列化
该命令用于将键对应的值做序列化处理实例如下 127.0.0.1:6379 SET num 12
OK
127.0.0.1:6379 DUMP num
\x00\xc0\x0c\t\x00\xec\xd8\xa9\x9d\b\x82\xdfd
如果 key 不存在时则返回 nil。
2) EXPIRE设置过期时间
该命令用于设置 key 的过期时间当 key 过期后将不可以再使用。
127.0.0.1:6379 set www.biancheng.net Python
OK
127.0.0.1:6379 set www.biancheng.net Python EX 60
OK
127.0.0.1:6379 EXPIRE www.biancheng.net 120
(integer) 1
上面介绍了两种设置过期时间的方法它们都可以实现过期时间设置key 过期后将自动被删除。
3) PEXPIREAT设置过期时间
以时间戳格式设置过期时间并以毫秒为单位。 127.0.0.1:6379 set www.biancheng.net Python
OK
127.0.0.1:6379 PEXPIREAT www.biancheng.net 12000000000
(integer) 1
设置成功返回 1若 key 不存在或者不能为其设置过期时间则返回 0。
4) KEYS命令查找键
查找指定模式的键。 redis 127.0.0.1:6379 SET course1 redis
OK
redis 127.0.0.1:6379 SET course2 php
OK
redis 127.0.0.1:6379 SET course3 python
OK
127.0.0.1:6379 keys course*
1) course1
2) course2
3) course3
#获取所有key
127.0.0.1:6379 keys *
1) course1
2) course2
3) course3
4) num
5) www.biancheng.net
注意keys * 会返回当前库中所有的键。
5) SCAN cursor
SCAN 命令是一个基于游标的迭代器每次被调用之后 都会向用户返回一个新的游标 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数 否则将无法继续跌代。如果新游标返回 0 则表示迭代结束。 SCAN 命令的语法格式如下
SCAN cursor [MATCH pattern] [COUNT count]
参数说明
cursor 指定游标从 0 开始新的迭代。pattern指定匹配的模式。count返回多少个元素默认值为 10 。SCAN 令可以迭代数据库中的所有键如果想针对特定的数据类型迭代那么命令自然也要做相应的变化。如下所示
SSCAN 命令用于迭代集合键中的元素。HSCAN 命令用于迭代哈希键中的键值对。ZSCAN 命令用于迭代有序集合中的元素。该命令的使用示例如下
127.0.0.1:6379 SCAN 0
1) 3
2) 1) name
2) website
3) biancheng2
4) www.biancheng.net
5) biancheng3
6) biancheng1
7) course2
8) topic
9) course1
10) age
127.0.0.1:6379 SCAN 3
1) 0
2) 1) biancheng
2) course3
3) userid:1
4) num
6) TTL命令
在 key 设置过期时间的情况下使用该命令检查 key 剩余的过期时间。 当键没有设置过期时间表示是永久有效时TTL 命令返回 -1当键过期或者被删除时TTL 命令返回 -2。示例如下
127.0.0.1:6379 SET www.biancheng.net hello
OK
127.0.0.1:6379 ttl www.biancheng.net
(integer) -1
127.0.0.1:6379 SET user:1 Jack EX 120
OK
127.0.0.1:6379 TTL user:1
(integer) 108
127.0.0.1:6379 DEL user:1
(integer) 1
127.0.0.1:6379 TTL user:1
(integer) -2