学习笔记2:redis基本操作

启动服务

在命令行中输入以下指令即可启动redis服务:

[redis-server文件的路径] [redis.conf文件的路径]

进入客户端

在命令行中输入以下指令即可进入操作redis的客户端:

[redis-cli文件的路径]

常用操作redis服务的指令

# 启动redis服务
systemctl start redis
# 重启redis服务
systemctl restart redis
# 停止redis服务
systemctl stop redis 
# 设置开机自启动
systemctl enable redis
# 禁止开机启动
systemctl disable redis

Active: active (running) 表示服务正在启动中

Active: inactive (dead)表示服务未启动

身份验证

进入redis客户端后,执行命令时可能会出现以下这种错误:

127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.

这是因为redis设置了身份验证,而我们进入客户端后没有通过身份验证导致的。

只需要在命令行中输入以下指令并输入正确密码即可通过认证。

127.0.0.1:6379> auth 123456
OK

提示结果显示为OK说明密码正确,通过认证!!!

清空redis中的数据

# 同步执行清除操作
FLUSHALL
# 异步执行清除操作
FLUSHALL ASYNC
  • FLUSHALL是同步执行的,即清空操作会在主线程中执行,这可能会影响主线程的运行。
  • FLUSHALL ASYNC则是异步执行的,清空操作会在一个新的线程中进行,不会妨碍主线程的运行。

当执行这个命令时,Redis会将所有存储在内存中的数据全部删除,并将内存空间释放回操作系统。这个命令的执行时间取决于数据库大小和Redis服务器的处理能力。如果Redis数据库非常大,清空所有数据可能会花费较长时间。

基本数据库操作

字符串String

# 设置指定的键值对
set key value
# 获取指定key的值
get key
# 设置指定key的值,并将key的过期时间设为seconds秒
setex key seconds value
# 只有在key不存在时才设置key的值
setnx key value

# 为已存在的键key添加超时时间seconds
expire key seconds

# 查看键key的有效期
ttl key

哈希hash

  • hash是一个string类型的field和value的映射表
  • hash特别适合用于存储对象
# 将哈希表key中的字段field的值设为value
hset key field value
# 获取存储在哈希表key中指定字段field的值
hget key field
# 删除存储在哈希表key中的指定字段field
# 可以一次删除多个字段
hdel key field
# 获取哈希表key中所有的字段
hkeys key
# 获取哈希表key中所有的值
hvals key
# 获取哈希表key中所有的字段field和值value
hgetall key

列表list

列表左边left(L)为头部,右边right(R)为尾部

按照插入顺序排序

# 将一个或多个值value插入到列表key头部
# 若执行lpush list 1 2 3 4
# 则列表结构为 4,3,2,1
lpush key value1 [value2]
# 将一个或多个值value插入到列表key尾部
rpush key value1 [value2]

# 获取列表key指定范围内[start,stop]的元素
lrange key start stop

# 移除并获取列表key第一个元素
lpop key
# 移除并获取列表key最后一个元素
rpop key

# 获取列表key的长度
llen key

# 移出并获取列表key的第一个元素,如果列表没有元素会阻塞列表直到等待超时timeout或发现可弹出元素为止
blpop key1 [key2] timeout
# 移出并获取列表key的最后一个元素,如果列表没有元素会阻塞列表直到等待超时timeout或发现可弹出元素为止
brpop key1 [key2] timeout

集合set

set是string类型的无序集合

集合成员是唯一的,这就意味着集合中不能出现重复的数据

# 向集合key中添加一个或多个成员member
sadd key member1 [member2]
# 返回集合key中的所有成员member
smembers key
# 获取集合key中成员member的数量
scard key
# 返回给定所有集合key的交集
sinter key1 [key2]
# 返回所有给定集合的并集
sunion key1 [key2]
# 返回所有给定集合的差集
sdiff key1 [key2]
# 移除集合key中一个或多个成员member
srem key member1 [member2]
# 判断成员member是否存在于集合key中
# 若存在,则返回1;否则返回0
sismember key member

有序集合sorted set

有序集合是string类型元素的集合,且不允许重复的成员

每个元素都会关联一个double类型的分数(score)。redis正是通过分数来为集合中的成员进行从小到大排序。

有序集合的成员是唯一的,但分数却可以重复

# 向有序集合key添加一个或多个成员member,或更新已存在成员的分数score
zadd key score1 member1 [score2 member2]

# 获取有序集合key中指定成员member的分数score
zscore key member

# 通过索引区间[start,stop]返回有序集合key中指定区间的成员member
# start stop是指元素下标,不是分数
# withscores表示按照分数进行排序
zrange key start stop [withscores]

# 有序集合key中对指定成员member的分数加上增量increment
# 即最终分数 = 原来的分数 + increment
zincrby key increment member

# 移除有序集合key中的一个或多个成员member
zrem key member1 [member2]