阿巩
坚决不咕咕咕!
本篇将介绍redis常用基础命令,可当手册使用;理论篇干货在昨天的福利中有pdf和xmind资源,详见网盘链接。如果觉得安装环境总是出现问题,可以使用在线平台测试Redis命令:http://try.redis.io/ 日拱一卒,我们开始吧!
启动redis服务
--raw 为了避免中文乱码
$ redis-cli -h host -p port -a password --raw
检测服务是否在运行
127.0.0.1:6379> ping
PONG
redis服务鉴权
查看是否设置了密码验证
config get requirepass
设置密码
config set requirepass "password"
验证连接
auth password
Redis数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
string类型
字符串中一个键最大能存储 512MB
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"
> exists job
(integer) 0
> setnx job "programmer"
(integer) 1
> setnx job "code-farmer"
(integer) 0
> get job
"programmer"
Hash类型
> hset myhash field1 "value"
1
> hexists myhash field1
(integer) 1
> hexists myhash field2
(integer) 0
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 mylist "hello"
(integer) 1
> rpush mylist "world" "python" "redis"
(integer) 4
> lrange mylist 0 -1
1) "hello"
2) "world"
3) "python"
4) "redis"
> lpop mylist
"hello"
> lpop mylist
"world"
> lpop mylist
"python"
> lpop mylist
(nil)
set类型
集合中元素是唯一的。
> sadd myset "hello"
(integer) 1
> sadd myset "world"
(integer) 1
> sadd myset "hello"
(integer) 0
> scard myset
2
> 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 有序集合)
redis发布订阅
第一个redis-cli --raw客户端:订阅频道AGongChat
127.0.0.1:6379> subscribe AGongChat
subscribe
AGongChat
1
message
AGongChat
Hello World
message
AGongChat
Redis PUBLISH test
第二个redis-cli --raw客户端:在频道AGongChat发布消息,订阅者能够接收到消息。
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性能测试
redis-benchmark [option] [option value]
参考:
菜鸟教程:https://www.runoob.com/redis/redis-tutorial.html
Redis命令参考:http://doc.redisfans.com/
END