学习笔记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]