Redis中的数据基础查询命令
Redis是一个基于内存的数据存储系统,因为是内存读写操作,被相应的称为非关系型数据库(NoSQL)。其中,Redis的基础查询命令涉及到5个方面:字符串(String)、哈希(Hash)、列表(List)、集合(Set)以及有序集合(Sorted Set)。下面将一一介绍这五个部分的查询命令。
1. 字符串(String)
字符串是Redis最基本的数据类型,字符串类型是二进制安全的。在Redis查询字符串时,主要有以下4个命令:
GET key
该命令用于获取指定key的数据内容。以下示例演示了如何获取key为name的数据内容:
127.0.0.1:6379> SET name "John"
OK
127.0.0.1:6379> GET name
"John"
SET key value
该命令用于设置一个key的数据内容。以下示例演示了如何设置key为name的数据内容:
127.0.0.1:6379> SET name "John"
OK
127.0.0.1:6379> GET name
"John"
MSET key value [key value ...]
该命令用于设置多个key的数据内容。以下示例演示了如何设置key为name、age、gender的数据内容:
127.0.0.1:6379> MSET name "John" age 18 gender "male"
OK
127.0.0.1:6379> MGET name age gender
1) "John"
2) "18"
3) "male"
INCR key
该命令用于将key对应的数字值增加1。以下示例演示了如何将key为counter的值增加1:
127.0.0.1:6379> SET counter 10
OK
127.0.0.1:6379> INCR counter
(integer) 11
2. 哈希(Hash)
哈希类型是Redis的一个键值对类型,适用于存储对象。以下是哈希中常用的3个命令:
HSET key field value
该命令用于为指定键的hash对象添加一个field/value键值对。以下示例演示了如何添加一个key为person1的hash对象中的name属性:
127.0.0.1:6379> HSET person1 name John
(integer) 1
127.0.0.1:6379> HGET person1 name
"John"
HGET key field
该命令用于获取指定键的hash对象中的field键对应的value值。以下示例演示了如何获取key为person1的hash对象中的name属性:
127.0.0.1:6379> HSET person1 name John
(integer) 1
127.0.0.1:6379> HGET person1 name
"John"
HGETALL key
该命令用于获取指定键的hash对象中的所有field和value键值对。以下示例演示了如何获取key为person1的hash对象中所有的键值对:
127.0.0.1:6379> HSET person1 name John age 18 gender male
(integer) 3
127.0.0.1:6379> HGETALL person1
1) "name"
2) "John"
3) "age"
4) "18"
5) "gender"
6) "male"
3. 列表(List)
列表类型是Redis的一个有序的字符串列表。主要有以下几个常用命令:
LPUSH/RPUSH key value
该命令用于向列表的最左/右边添加元素。以下示例演示了如何向名为list1的列表中插入元素:
127.0.0.1:6379> LPUSH list1 "John"
(integer) 1
127.0.0.1:6379> RPUSH list1 "Catherine"
(integer) 2
127.0.0.1:6379> LRANGE list1 0 -1
1) "John"
2) "Catherine"
LPOP/RPOP key
该命令用于弹出列表的最左/右元素。以下示例演示了如何删除名为list1的列表最左边的元素:
127.0.0.1:6379> LPUSH list1 "John"
(integer) 1
127.0.0.1:6379> LPUSH list1 "Catherine"
(integer) 2
127.0.0.1:6379> LPOP list1
"Catherine"
127.0.0.1:6379> LRANGE list1 0 -1
1) "John"
4. 集合(Set)
集合类型是Redis一个无序的字符串集合,主要有以下几个常用命令:
SADD key member [member ...]
该命令用于向指定集合中添加元素。以下示例演示了向名为set1的集合中添加元素:
127.0.0.1:6379> SADD set1 "John" "Catherine" "Matthew"
(integer) 3
127.0.0.1:6379> SMEMBERS set1
1) "Matthew"
2) "Catherine"
3) "John"
SISMEMBER key member
该命令用于判断指定元素是否存在于指定集合中。以下示例演示了判断名为set1的集合中是否存在John这个元素:
127.0.0.1:6379> SADD set1 "John" "Catherine" "Matthew"
(integer) 3
127.0.0.1:6379> SISMEMBER set1 "John"
(integer) 1
127.0.0.1:6379> SISMEMBER set1 "Michael"
(integer) 0
5. 有序集合(Sorted Set)
有序集合类型是Redis的一个有序的字符串集合,每个元素都会被赋予一个得分,通过该得分来进行从小到大的排序。主要有以下几个常用命令:
ZADD key score member [score member ...]
该命令用于向指定集合中增加元素。元素可以根据分值自动排序。以下示例演示了向名为zset1的有序集合中添加元素:
127.0.0.1:6379> ZADD zset1 60 "John"
(integer) 1
127.0.0.1:6379> ZADD zset1 90 "Catherine"
(integer) 1
127.0.0.1:6379> ZADD zset1 80 "Matthew"
(integer) 1
127.0.0.1:6379> ZRANGEBYSCORE zset1 80 100
1) "Matthew"
2) "Catherine"
ZSCORE key member
该命令用于获取指定元素的分值。以下示例演示了获取名为zset1的有序集合中John元素的分值:
127.0.0.1:6379> ZADD zset1 60 "John"
(integer) 1
127.0.0.1:6379> ZSCORE zset1 "John"
"60"
以上便是Redis中常见的基础查询命令,涉及到5个基本数据类型的增删改查操作。在实际开发和运维过程中,运用Redis的命令能够更高效地操作数据,为业务提供更好的支持。