【Redis】常见基本全局命令

在这里插入图片描述

一、Redis俩大核心命令

由于Redis是以键值对的形式进行数据存取,自然就离不开不断的存储和获取,而其所对应的命令则是set和get,如此说来二者为Redis的核心基础命令也不为过。
在这里插入图片描述

作用:用于存储Stirng类型的数据
返回:当key不存在时设置成功返回OK,当key存在时对原有值进行覆盖
参数:NX表示key不存在时进行存储,XX表示存在时进行存储,EX、PX为设置过期时间,EX时间为s,PX时间为ms

127.0.0.1:6379> set key 111		设置key——value
OK
127.0.0.1:6379> get key			获取value
"111"
127.0.0.1:6379> set key 222		再次设置key对应value值
OK
127.0.0.1:6379> get key			value值被覆盖
"222"
127.0.0.1:6379> set key 111 NX		
(nil)						key存在,设置失败返回nil
127.0.0.1:6379> set key 111 XX
OK							key存在,设置成功
127.0.0.1:6379> get key
"111"

在这里插入图片描述

作用:获取key所对应的值
返回:当key存在时返回value,不存在时返回nil,当key存储值不为string类型时返回报错,get只能用于string类型获取。

127.0.0.1:6379> set key 111
OK
127.0.0.1:6379> get key		获取value
"111"
127.0.0.1:6379> hset hash field 222	存储hash类型数据
(integer) 1
127.0.0.1:6379> get hash		尝试获取非string数据,获取失败报错
(error) WRONGTYPE Operation against a key holding the wrong kind of value

上述GET、SET只针对value为string类型时有效,value存储数据类型可以为String、Hash、List、Set、ZSet,不同数据结构都有不同种操作命令都是在此基础上进行拓展。

二、常见基本全局命令

在这里插入图片描述
作用:返回所有匹配参数的value值,具有以下几个参数

参数作用
匹配单个字符
*匹配0-nge字符
[ab]匹配中括号里的字符
[^a]排除中括号里的字符
[a-b]匹配中括号区间内的字符

在这里插入图片描述
作用:判断key是否存在,可同时判断多个key
返回:当ke存在时返回1,不存在时返回0,多个同时存在时返回存在的个数

127.0.0.1:6379> set key 111
OK
127.0.0.1:6379> exists key		key存在返回1
(integer) 1
127.0.0.1:6379> exists key2		key2不存在,返回0
(integer) 0
127.0.0.1:6379> set key2 222
OK
127.0.0.1:6379> set key3 333
OK
127.0.0.1:6379> exists key key2 key3	同时都存在,返回存在个数
(integer) 3

在这里插入图片描述
作用:删除存在的key
返回:key存在删除成功返回1,不存在删除失败返回0

127.0.0.1:6379> set key 111
OK
127.0.0.1:6379> set key2 222
OK
127.0.0.1:6379> keys *		查询存在的key
1) "key2"
2) "key"
127.0.0.1:6379> del key3	不存在删除失败返回o
(integer) 0
127.0.0.1:6379> del key2	存在删除成功返回1
(integer) 1
127.0.0.1:6379> keys *
1) "key"

在这里插入图片描述
作用:判断key所剩余的过期时间
返回:若key设置过期时间则返回过期时间,没设置则返回-1,key不存在返回-2

127.0.0.1:6379> set key 111
OK
127.0.0.1:6379> set key2 222 ex 60	设置过期时间60s
OK
127.0.0.1:6379> ttl key				未设置返回-1
(integer) -1
127.0.0.1:6379> ttl key2			设置返回过期时间
(integer) 51
127.0.0.1:6379> ttl key3			不存在返回-2
(integer) -2

注:ex设置过期时间单位为s,用ttl查看过期时间;pex设置过期时间单位为ms,用pttl查看过期时间

在这里插入图片描述
作用:返回value中存储数据类型
返回:返回值可能为String、Hash、List、Set、ZSet

127.0.0.1:6379> set key 111
OK
127.0.0.1:6379> hset key2 field hello
(integer) 1
127.0.0.1:6379> type key
string
127.0.0.1:6379> type key2
hash

问:Redis中的过期策略是如何实现的?

答:主要通过惰性删除和定期删除两种方式进行实现
惰性删除:当某个key存在并设置过期时间,再次访问该key时发现已经过期便进行删除。
定期删除:定期扫描一定数量的key来进行检查删除,少量多次进行避免线程的阻塞。

### Redis 运行命令与使用方法 Redis 是一种高性能的键值存储系统,支持多种数据结构操作。以下是 Redis 的运行命令以及常见使用方法。 #### 启动 Redis 服务 在 Windows 或 Linux 系统下启动 Redis 服务的方式有所不同: - **Windows 下启动 Redis** 如果未配置环境变量,则需要进入 Redis 安装目录再执行以下命令[^1]: ```bash redis-server.exe ``` 配置好环境变量后可以直接通过命令全局调用 `redis-server` 命令。 - **Linux 下启动 Redis** 在 Linux 中通常可以通过如下方式启动 Redis[^2]: ```bash redis-server /etc/redis.conf ``` 上述命令表示指定配置文件 `/etc/redis.conf` 来启动 Redis 服务。 #### 测试 Redis 是否正常工作 为了验证 Redis 是否成功启动并能够正常使用,可以尝试连接到 Redis 并发送简单的指令: - **连接到 Redis** 使用 `redis-cli` 工具连接至本地 Redis 实例: ```bash redis-cli ``` - **测试基本功能** 成功连接之后,可以在交互模式下输入一些基础命令来确认其可用性, 如: ```bash PING SET mykey "Hello" GET mykey ``` #### Docker 方式部署 Redis 如果希望通过容器化技术快速搭建 Redis 环境,Docker 提供了一种便捷的方法[^3]: - **拉取官方镜像** 执行下面这条语句获取最新版本的 Redis 镜像: ```bash docker pull redis ``` - **创建并运行容器实例** 创建一个新的 Redis 数据库容器,并将其端口映射到主机上的某个特定端口号(比如6379): ```bash docker run --name some-redis -d -p 6379:6379 redis ``` - **连接到正在运行中的 Redis** 利用 `-it` 参数附加终端会话或者单独打开另一个 shell 终端去接入已存在的容器内的 CLI 接口: ```bash docker exec -it some-redis redis-cli ``` #### 多进程场景下的性能考量 需要注意的是,在单机环境下同时开启多个 Redis 进程虽然能提升系统的吞吐量,但也可能带来额外开销,尤其是对于 CPU 资源有限的情况而言更是如此[^2]。因此建议依据具体业务需求合理规划 Redis 的部署架构。 ```python import redis r = redis.Redis(host='localhost', port=6379, decode_responses=True) print(r.ping()) # 输出 True 表明连接有效 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值