Redis基础命令集详解——新手入门必备
文章目录
前言
Redis(Remote Dictionary Server)是一个开源的使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(string)、哈希(Hash)、列表(list)、集合(sets)、有序集合(sorted sets)等类型。
对于刚开始学习Redis的新手来说,掌握基础命令是非常重要的第一步。本文旨在为初学者提供一份详尽的Redis基础命令参考指南,帮助大家快速上手并掌握其基本用法。
一、Redis安装与连接
二、Redis数据类型及基本命令
1、 String(字符串)
- 设置键值对:SET key value
SET mykey "Hello Redis!"
- 获取键值:GET key
GET mykey
# 输出: "Hello World!"
- 向key的字符串值末尾追加内容:APPEND key value
APPEND mykey " Redis!"
GET mykey
# 输出: "Hello World! Redis!"
- 对key的值进行增减操作:INCR、DECR、INCRBY、DECRBY
INCR key
DECR key
INCRBY key increment
DECRBY key decrement
SET mynum 10
INCR mynum
# 输出: (integer) 11
DECRBY mynum 3
# 输出: (integer) 8
- 将key所储存的字符串值,在offset的位置设置为value:SETBIT key offset value
假设我们有一个key为"mykey",我们想在其第7位(从0开始计数)设置一个值为1的位。我们可以使用SETBIT命令如下:
SETBIT mykey 7 1
如果"mykey"原本不存在,这个命令会创建一个新的字符串,并在第7位设置值为1。如果"mykey"已经存在,这个命令会修改其第7位的值。
- 获取存储在key的字符串值的offset位置的位(bit):GETBIT key offset
接着上面的例子,我们可以使用GETBIT命令来获取"mykey"的第7位的值:
GETBIT mykey 7
#返回1
- 计算key中设置为1的位数:BITCOUNT key [start] [end]
假设我们有一个key为"bitset",它存储了一个二进制字符串,我们想知道这个字符串中有多少个位被设置为1。我们可以使用BITCOUNT命令如下:
BITCOUNT bitset
如果没有指定start和end,BITCOUNT会计算整个字符串中设置为1的位数。
- 对一个或多个key进行位运算,并将结果保存到destkey中。位运算可以是AND、OR、XOR和NOT:BITOP operation destkey key [key…]
假设我们有两个key,分别为"key1"和"key2",它们存储了二进制字符串。我们想要对这两个key执行按位与(AND)操作,并将结果保存到"resultkey"中。我们可以使用BITOP命令如下:
BITOP AND resultkey key1 key2
执行完这个命令后,"resultkey"将包含"key1"和"key2"按位与操作的结果。
- 返回key中第一个设置为bit的位的位置:BITPOS key bit [start] [end]
假设我们有一个key为"searchbit",我们想要找到第一个设置为1的位的位置。我们可以使用BITPOS命令如下:
BITPOS searchbit 1
这将返回"searchbit"中第一个设置为1的位的位置。如果指定了start和end,BITPOS将只在指定的范围内搜索。
2、List(列表) 可模拟双向列表(左进右出|右进左出)和栈(左进左出|右进右出)
- 将一个或多个值插入到列表头部或尾部:LPUSH、RPUSH
LPUSH listkey value1 value2 ...
RPUSH listkey value1 value2 ...
LPUSH mylist "one"
RPUSH mylist "two" "three"
- 移除并获取列表的第一个或最后一个元素:LPOP、RPOP
LPOP listkey
RPOP listkey
LPOP mylist
# 输出: "one"
- 获取列表指定范围内的元素:LRANGE listkey start stop
LRANGE mylist 0 -1
# 输出: 1) "two" 2) "three"
3、Set(集合)
- 将一个或多个成员添加到集合中:SADD setkey member1 member2 …
SADD myset "apple" "banana"
- 返回集合中的所有成员:SMEMBERS setkey
SMEMBERS myset
# 输出: 1) "apple" 2) "banana"
- 判断成员是否在集合中:SISMEMBER setkey member
SISMEMBER myset "apple"
# 输出: (integer) 1
- 移除集合中的一个或多个成员:SREM setkey member1 member2 …
SREM myset "banana"
4、Hash(哈希)
- 添加哈希字段及其值:HSET key field value
HSET user:1 name "Alice" age 25
- 获取哈希字段的值:HGET key field
HGET user:1 name
# 输出: "Alice"
- 获取哈希表中所有字段和值:HGETALL hashkey
HGETALL user:1
# 输出: 1) "name" 2) "Alice" 3) "age" 4) "25"
- 删除哈希表中的字段:HDEL hashkey field [field …]
HDEL user:1 age
5、Sorted Set(有序集合)
- 将一个或多个成员及其分数添加到有序集合中:ZADD sortedsetkey score1 member1 score2 member2 …
ZADD mysortedset 1 "one" 2 "two" 3 "three"
- 返回有序集合中指定排名范围的元素:ZRANGE sortedsetkey start stop [WITHSCORES]
ZRANGE mysortedset 0 -1 WITHSCORES
# 输出: 1) "one" 2) "1" 3) "two" 4) "2" 5) "three" 6) "3"
- 移除有序集合中的一个或多个成员:ZREM sortedsetkey member1 member2 …
ZREM mysortedset "two"
- 返回有序集合中成员的排名:ZRANK、ZREVRANK
ZRANK sortedsetkey member
ZREVRANK sortedsetkey member
ZRANK mysortedset "one"
# 输出: (integer) 0
6、其他功能性命令
- 检查键是否存在:EXISTS key
EXISTS mykey
//存在返回 1
- 过期时间设置:EXPIRE key seconds
EXPIRE mykey 60
- 查询所有的key
keys *
三、事务与批量操作
Redis提供了MULTI、EXEC、DISCARD等命令来支持事务操作。
- 开始事务:MULTI
- 执行命令入队列:(在此之后的所有命令都会被放入队列)
- 提交事务并执行命令:EXEC
- 取消事务:DISCARD
> MULTI
OK
> INCR counter
QUEUED
> INCR counter
QUEUED
> EXEC
1) (integer) 1
2) (integer) 2
总结
以上只是Redis庞大命令集的一部分,随着深入学习,你会发现Redis在数据处理方面的强大功能和灵活性。希望这篇基础命令详解能帮你顺利开启Redis的学习之旅,后续我们还将进一步探讨Redis在实战中的应用技巧和优化策略。