前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis被问到哭?看完这篇,她站起来了……

Redis被问到哭?看完这篇,她站起来了……

作者头像
才浅Coding攻略
发布2022-12-12 17:10:24
3370
发布2022-12-12 17:10:24
举报
文章被收录于专栏:才浅coding攻略

阿巩

坚决不咕咕咕!

本篇将介绍redis常用基础命令,可当手册使用;理论篇干货在昨天的福利中有pdf和xmind资源,详见网盘链接。如果觉得安装环境总是出现问题,可以使用在线平台测试Redis命令:http://try.redis.io/ 日拱一卒,我们开始吧!

启动redis服务

--raw 为了避免中文乱码

代码语言:javascript
复制
$ redis-cli -h host -p port -a password --raw

检测服务是否在运行

代码语言:javascript
复制
127.0.0.1:6379> ping
PONG

redis服务鉴权

查看是否设置了密码验证

代码语言:javascript
复制
config get requirepass

设置密码

代码语言:javascript
复制
config set requirepass "password"

验证连接

代码语言:javascript
复制
auth password

Redis数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

string类型

字符串中一个键最大能存储 512MB

  • getrange key start end 截取字符串
代码语言:javascript
复制
redis 127.0.0.1:6379> SET mykey "This is my test key"
OK
redis 127.0.0.1:6379> getrange mykey 0 3
"This"
redis 127.0.0.1:6379> getrange mykey 0 -1
"This is my test key"
  • setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。
代码语言:javascript
复制
> exists job
(integer) 0
> setnx job "programmer"
(integer) 1
> setnx job "code-farmer"
(integer) 0
> get job
"programmer"

Hash类型

  • hexist 查看哈希表指定字段是否存在
代码语言:javascript
复制
> hset myhash field1 "value"
1
> hexists myhash field1
(integer) 1
> hexists myhash field2
(integer) 0
  • hgetall 返回哈希表中,所有的字段和值
代码语言:javascript
复制
redis> hset myhash field1 "Hello"
(integer) 1
redis> hset myhash field2 "World"
(integer) 1
redis> hgetall myhash
1) "field1"
2) "Hello"
3) "field2"
4) "World"

List类型

  • rpush 将一个或多个值插入列表尾部
代码语言:javascript
复制
> rpush mylist "hello"
(integer) 1
> rpush mylist "world" "python" "redis"
(integer) 4
> lrange mylist 0 -1
1) "hello"
2) "world"
3) "python"
4) "redis"
  • lpop 移除并返回列表的第一个元素
代码语言:javascript
复制
> lpop mylist
"hello"
> lpop mylist
"world"
> lpop mylist
"python"
> lpop mylist
(nil)

set类型

集合中元素是唯一的。

  • scard 获取集合中元素数量
代码语言:javascript
复制
> sadd myset "hello"
(integer) 1
> sadd myset "world"
(integer) 1
> sadd myset "hello"
(integer) 0
> scard myset
2
  • srem 移除集合中的一个或多个元素
代码语言:javascript
复制
> sadd myset "hello"
(integer) 1
> sadd myset "world"
(integer) 1
> sadd myset "redis"
(integer) 1
> srem myset "hello" "world"
2
smembers myset
1) "redis"

zset类型(sorted set 有序集合)

  • zrange 按值递增(从小到大)来排序
  • zrevrange 按值递减(从大到小)来排列
  • zscore key member 返回成员值

redis发布订阅

第一个redis-cli --raw客户端:订阅频道AGongChat

代码语言:javascript
复制
127.0.0.1:6379> subscribe AGongChat
subscribe
AGongChat
1
message
AGongChat
Hello World
message
AGongChat
Redis PUBLISH test

第二个redis-cli --raw客户端:在频道AGongChat发布消息,订阅者能够接收到消息。

代码语言:javascript
复制
127.0.0.1:6379> publish AGongChat "Hello World"
1
127.0.0.1:6379> publish AGongChat "Redis PUBLISH test"
1

redis事务

multi开启事务将多个命令入队到事务中, 最后由 exec 命令触发事务, 一并执行事务中的所有命令。

redis stream

Redis 5.0 版本新增加的数据结构,主要用于消息队列。

xadd 向队列添加消息,如果指定的队列不存在,则创建一个队列。

使用 xdel 删除消息。

redis数据恢复

redis管道

在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。

redis性能测试

代码语言:javascript
复制
redis-benchmark [option] [option value]

参考:

菜鸟教程:https://www.runoob.com/redis/redis-tutorial.html

Redis命令参考:http://doc.redisfans.com/

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 才浅coding攻略 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis®
腾讯云数据库 Redis®(TencentDB for Redis®)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档