1

Redis数据结构、Redis通用命令、Redis 的 key 的层次结构、Redis5种数据类型及基本命令(String、List、Hash、Set、SortedSet)

一、安装

二、集群

回到目录

二、使用

2.1 node-red读写redis

2.2 java读写redis

回到目录

三、 redis 常用命令

3.1 redis基础命令

参考链接: Redis数据库通用命令(SELECT、KEYS、SCAN、RANDOMKEY、SORT、EXISTS、DBSIZE、TYPE、RENAME、MOVE、DEL…)

  Redis 是一个键值对(key-value)数据库,因此其基本查询语句是基于键(key)的。以下是一些基本的 Redis 操作语句:

3.1.1 数据库操作

  1. 切换至指定的数据库SELECT dbname

  一个Redis服务器可以包含多个数据库。在默认情况下,Redis服务器在启动时将会创建16个数据库:这些数据库都使用号码进行标识,其中第一个数据库为0号数据库,第二个数据库为1号数据库,而第三个数据库则为2号数据库,以此类推。
  Redis虽然不允许在同一个数据库中使用两个同名的键,但是由于不同数据库拥有不同的命名空间,因此在不同数据库中使用同名的键是完全没有问题的,而用户也可以通过使用不同数据库来存储不同的数据,以此来达到重用键名并且减少键冲突的目的。
  当用户使用客户端与Redis服务器进行连接时,客户端一般默认都会使用0号数据库,但是通过使用SELECT命令,用户可以从当前正在使用的数据库切换到自己想要使用的数据库。
1

  1. 清空当前数据库FLUSHDB,FLUSHDB命令会遍历用户正在使用的数据库,移除其中包含的所有键值对,然后返回OK表示数据库已被清空。 默认为同步移除。
  • FLUSHDB SYNC :同步移除命令,并且因为FLUSHDB移除的是整个数据库而不是单个键,所以它常常会引发比DEL命令更为严重的服务器阻塞现象。
  • FLUSHDB ASYNC :实际的数据库清空操作将放在后台线程中以异步方式进行,这样FLUSHDB命令就不会再阻塞服务器了。
    2
  1. 清空所有数据库FLUSHALL,清空Redis服务器包含的所有数据库。

与FLUSHDB命令一样,以同步方式执行的FLUSHALL命令也可能会导致服务器阻塞,因此Redis 4.0也给FLUSHALL命令添加了同样的async选项。

  1. 互换数据库SWAPDB dbindex1 dbindex2,接受两个数据库号码作为输入,然后对指定的两个数据库进行互换,最后返回OK作为结果.

在SWAPDB命令执行完毕之后,原本存储在数据库index1中的键值对将出现在数据库index2中,而原本存储在数据库index2中的键值对将出现在数据库index1中。

  1. 将给定的键移动到另一个数据库:MOVE Key DBName

当MOVE命令成功将给定键从当前数据库移动至目标数据库时,命令返回1;
如果给定键并不存在于当前数据库,或者目标数据库中存在与给定键同名的键,那么MOVE命令将不做动作,只返回0表示移动失败。
1
回到目录

3.1.2 库中的键值对操作

  1. 设置键值对SET key value ,这将在数据库中设置一个键值对。如果键已经存在,那么旧值将被替换。
    1
  2. 获取键值GET key,这会返回键对应的值。如果键不存在,那么将返回 null。
    1
  3. 检查键是否存在EXISTS key ,这会返回一个数字,表示键存在的数量。如果键存在,返回值是1,否则是0。
    1
  4. 删除键
  • DEL key [key ...]:这将删除一个或多个键。如果成功,返回被删除的键的数量。

以同步方式执行移除操作,所以如果待移除的键非常庞大或者数量众多,那么服务器在执行移除操作的过程中就有可能被阻塞。比如,移除一个包含上百万个元素的集合,移除一个包含数十万个键值对的散列,或者一次移除成千上万个键,都有可能引起服务器阻塞。
4

  • UNLINK key [key ...]:以异步方式移除指定的键,返回被移除键的数量作为结果

UNLINK命令与DEL命令一样,都可以用于移除指定的键,但它与DEL命令的区别在于,当用户调用UNLINK命令去移除一个数据库键时,UNLINK只会在数据库中移除对该键的引用(reference),而对键的实际移除操作则会交给后台线程执行,因此UNLINK命令将不会造成服务器阻塞。

  1. 获取键的类型(TYPE):TYPE key,这会返回键值的类型。可能的返回值包括"string"、“list”、“set”、“zset” 和 “hash”。
    5
  2. 获取键的长度
  • LLEN key,对于列表类型有效,返回值的长度。对于其它类型返回异常。
  • STRLEN key,对于字符串类型有效,返回值的长度。对于其它类型返回异常。
    1
  1. **查看符合模板的所有key **:KEYS patterns

1
2

  1. 查看一页的键SCAN cursor [MATCH pattern] [COUNT count],SCAN 命令用于迭代数据库中的 key。cursor 是必需的,它是一个整数,表示当前的游标。pattern 和 count 是可选的。
  2. 查看所有键的类型INFO *,返回关于 Redis 服务器的一些信息。
    1
  3. 查看键空间和统计信息INFO key [key ...],返回关于给定键的信息和统计数据。例如使用 INFO keyspace 可以查看所有数据库的信息和统计数据。
  4. 获取当前使用的数据库包含了多少个键值对(Redis里面所有数据都是键值对的形式):DBSIZE
    11
  5. 修改键名:
  • RENAME:如果用户指定的新键名已经被占用,那么RENAME命令会先移除占用了新键名的那个键,然后再执行改名操作。
  • RENAMENX:只会在新键名尚未被占用的情况下进行改名,如果用户指定的新键名已经被占用,那么RENAMENX将放弃执行改名操作。
    12
  1. 给一个key设置有效期,有效期到期时该key会被自动删除EXPIRE key seconds

key 是要设置过期时间的键,seconds 是过期时间,以秒为单位。当使用 EXPIRE 命令时,如果键不存在,将返回 0,表示键不存在。如果键存在,将返回 1,表示键存在并成功设置了过期时间。
1

  1. 查看一个KEY的剩余有效期:TTL key

该命令将返回一个数字,表示剩余的TTL时间(以秒为单位)。如果键不存在,该命令将返回一个错误。需要注意的是,当一个键被删除或者设置了一个新的TTL值后,该键的剩余TTL时间将被重新计算。
2\

回到目录

3.2 散列Hash 类型和常用命令

Redis 基础 – 散列 Hash 类型 和 Hash 类型的常用命令

3.3 有序集合SortedSet类型和常用命令

有序集合 SortedSet类型 和 SortedSet类型的常用命令

3.4 集合Set类型和常用命令

集合 Set 类型 和 Set 类型的常用命令

3.5 列表List类型和常用命令

列表 List 类型 和 List 类型的常用命令

3.6 字符串 String 类型和常用命令

字符串 String 类型 和 String 类型的常用命令

3.7 流(stream)类型和常用命令

流(stream)类型 和 流(stream)类型的常用命令

3.8 地理坐标类型 Redis GEO 和常用命令(含GEOHASH编码说明)

地理坐标类型 Redis GEO 和 Redis GEO的常用命令(含GEOHASH编码说明)

3.9 位图(bitmap)数据结构和常用命令(SETBIT、GETBIT、BITCOUNT、BITPOS、BITOP、BITFIELD)

位图(bitmap)数据结构和 bitmap的常用命令(SETBIT、GETBIT、BITCOUNT、BITPOS、BITOP、BITFIELD)

3.10 HyperLogLog概率算法(计算集合的近似基数)和常用命令

HyperLogLog概率算法(计算集合的近似基数)和HyperLogLog的常用命令

回到目录

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐