Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

redis学习 #101

Open
mwjuan opened this issue Feb 7, 2023 · 0 comments
Open

redis学习 #101

mwjuan opened this issue Feb 7, 2023 · 0 comments

Comments

@mwjuan
Copy link
Owner

mwjuan commented Feb 7, 2023

ubuntu 安装

apt-get update
apt-get install redis-server

启动

redis-server

查看是否启动

redis-cli

以上命令将打开终端
127.0.0.1 是本机 IP ,6379 是 redis 服务端口
image

数据类型

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

  • string
    string类型是Redis最基本的数据类型,一个键最大能存储512MB
set [key] [value]
get [key]

以下示例中,redis的key值为name,value值为redis.net.cn
image

  • hash(哈希)
    hash 是一个键值对集合,是一个string类型的field和value的映射表,特别适合用于存储对象。
HMSET [key] [value]
HGETALL [key]

image

以上实例中 hash 数据类型存储了一个用户对象。 实例中使用了 HMSET, HEGTALL 命令,user:1 为键值 每个 hash 可以存储 232 - 1 键值对(40多亿)。
  • list(列表)
    列表是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的头部(左边)或者尾部(右边)
lpush [key] [value1]
lpush [key] [value2]

lrange [key]
// value1 value2
  • set(集合)
    Set是string类型的无序且元素唯一的集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
sadd key [value1] 
sadd key [value2]
smembers [key]
// value1 value2
  • zset(sorted set:有序集合)
    zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
    不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复
zadd key score member 
ZRANGEBYSCORE key minscore maxscore

image

命令

// 远程 连接redis 服务
redis-cli -h host -p port -a password

发布订阅

SUBSCRIBE channel [channel ...] 订阅给定的一个或多个频道的信息
UNSUBSCRIBE [channel...]  指退订给定的频道

PUBLISH channel message 将信息发送到指定的频道

pipeline(管道技术)

管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应,优势是提高 redis 服务的性能

let pipeline = redis.pipeline();  // 采用管道操作
pipeline.exec();   // 关闭管理操作
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant