redis用在哪里
1. 高并发缓存/共享session:
UserInfo getUserInfo (long id) {}
取:
userRedisKey = "user:info:" + id;
value = redis.get(userRedisKey );
if (value != null) {
userInfo = deserialize(value);
return userInfo;
}
存:
userInfo = ***getUserInfo(id);
redis.setex(userRedisKey, 3600, serialize(userInfo));
用string存储序列化后的数据,不够立体直观,可以转为hmset存储为哈希结构,存取更直观
2. 简单分布式锁
setnx只有不存在时能设置成功,其余只能等待。单线程
3. 计数器 incr,因为是单线程,比cas等少了cpu消耗,性能更高
long incrVideoCounter (long id) {
key = "video:playCount:" + id;
return redis.incr(key);
}
4. 实现栈/队列
栈: lpush + lpop
队列: lpush + rpop
5. 流量控制/限速
phoneNum = "12345678999";
key = "shortMsg:limit:" + phoneNum;
isExists = redis.set(key, 1, "EX 60", "NX");
if (isExists != null || redis.incr(key) <= 5) {
//通过
} else {
//不通过
}
6. 消息队列
使用lpush + brpop可实现阻塞队列,生产者从列表左端lpush插入元素,多个消费者从右端brpop阻塞获取队列尾部元素
7. 每个用户有自己的文章,现在要分页展示文章列表
hmset article:1 title xx context XXXX
lpush user:1:articles srticle:1 articles:3
articles = lrange user:1:articles 0 9
for article in {articles}
hgetall {article}
8. 关注点赞等
点赞: zincrby user:ranking:2016_03_15 mike 1
取消: zrem user:ranking:2016_03_15 mike
取得赞最多的10个用户: zrevrangebyrank user:ranking:2016_03_15 0 9
展示用户信息及分数: hgetall user:info:tom / zscore user:ranking:2016_03_15 mike / zrank user:ranking:2016_03_15 mike
9. bitmaps 计算大数据集合见的关系等
10. 排行榜
mike上传了一个视频并获得了3个赞 zadd user:ranking:2016_03_15 mike 3
又有人给点了个赞 zincrby user:ranking:2016_03_15 mike 1
11. 共同关注
给用户添加关注标签 sadd user:1:tags tag1 tag2
给标签添加用户 sadd tag1:uses user:1
共同关注 sinter user:1:tags user:2:tags
sinter/sunion/sdiff
12. 发布订阅
subscribe video:changes:
publish video:changeds "video1,video2"
for video in video1,video2
update (video)
每种数据type对应了多种底层数据结构实现(object encoding),可以通过数据大小长度场景等切换,达到更高的效率
持久化RDB(子进程创建,二进制文件,恢复快,不够实时)/AOF(appendonly。文本文件,实时写操作先aop_buffer,然后通过配置写入磁盘间隔,写入磁盘,达到一定大小合并)
批量hmget等操作要转为hscan等渐进式遍历方法,否则容易阻塞
缓冲:客户端缓冲(输入/输出),复制积压缓冲,aof缓冲
复制: 全量/增量 复制偏移量/复制积压缓冲(写命令发送给从服务器同时还维护一个先进先出的队列,等于主服务还保存着最近传播的命令)/ID
sentinal: 实现高可用,本身是特殊的redis节点,可以自己配置集群,通过心跳等机制监控redis数据集群,当某一节点出现故障不可用,可以及时发现并自动迁移
cluster: 分布式集群,容错选主等。将物理结点映射到16383个槽位实现动态性
更多Redis相关技术文章,请访问Redis教程栏目进行学习!
Atas ialah kandungan terperinci redis用在哪里. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Mod Redis cluster menyebarkan contoh Redis ke pelbagai pelayan melalui sharding, meningkatkan skalabilitas dan ketersediaan. Langkah -langkah pembinaan adalah seperti berikut: Buat contoh Redis ganjil dengan pelabuhan yang berbeza; Buat 3 contoh sentinel, memantau contoh redis dan failover; Konfigurasi fail konfigurasi sentinel, tambahkan pemantauan maklumat contoh dan tetapan failover; Konfigurasi fail konfigurasi contoh Redis, aktifkan mod kluster dan tentukan laluan fail maklumat kluster; Buat fail nodes.conf, yang mengandungi maklumat setiap contoh Redis; Mulakan kluster, laksanakan perintah Buat untuk membuat kluster dan tentukan bilangan replika; Log masuk ke kluster untuk melaksanakan perintah maklumat kluster untuk mengesahkan status kluster; buat

Redis menggunakan jadual hash untuk menyimpan data dan menyokong struktur data seperti rentetan, senarai, jadual hash, koleksi dan koleksi yang diperintahkan. Redis berterusan data melalui snapshots (RDB) dan menambah mekanisme tulis sahaja (AOF). Redis menggunakan replikasi master-hamba untuk meningkatkan ketersediaan data. Redis menggunakan gelung acara tunggal untuk mengendalikan sambungan dan arahan untuk memastikan atom dan konsistensi data. Redis menetapkan masa tamat tempoh untuk kunci dan menggunakan mekanisme memadam malas untuk memadamkan kunci tamat tempoh.

Langkah-langkah untuk menyelesaikan masalah yang tidak dapat dijumpai oleh Redis-Server: periksa pemasangan untuk memastikan Redis dipasang dengan betul; Tetapkan pembolehubah persekitaran redis_host dan redis_port; Mulakan Redis Server Redis-server; Semak sama ada pelayan sedang menjalankan ping redis-cli.

Untuk melihat semua kunci di Redis, terdapat tiga cara: Gunakan perintah kunci untuk mengembalikan semua kunci yang sepadan dengan corak yang ditentukan; Gunakan perintah imbasan untuk melangkah ke atas kunci dan kembalikan satu set kunci; Gunakan arahan maklumat untuk mendapatkan jumlah kunci.

Cara terbaik untuk memahami kod sumber REDIS adalah dengan langkah demi langkah: Dapatkan akrab dengan asas -asas Redis. Pilih modul atau fungsi tertentu sebagai titik permulaan. Mulakan dengan titik masuk modul atau fungsi dan lihat baris kod mengikut baris. Lihat kod melalui rantaian panggilan fungsi. Berhati -hati dengan struktur data asas yang digunakan oleh REDIS. Kenal pasti algoritma yang digunakan oleh Redis.

Menggunakan Arahan Redis memerlukan langkah -langkah berikut: Buka klien Redis. Masukkan arahan (nilai kunci kata kerja). Menyediakan parameter yang diperlukan (berbeza dari arahan ke arahan). Tekan Enter untuk melaksanakan arahan. Redis mengembalikan tindak balas yang menunjukkan hasil operasi (biasanya OK atau -r).

Dua kaedah berikut boleh digunakan untuk membersihkan data dalam REDIS: Perintah Flushall: Padam semua kunci dan nilai dalam pangkalan data. Config ResetStat Command: Tetapkan semula semua negeri pangkalan data (termasuk kunci, nilai, dan statistik lain).

Langkah -langkah untuk memulakan pelayan Redis termasuk: Pasang Redis mengikut sistem operasi. Mulakan perkhidmatan Redis melalui Redis-server (Linux/macOS) atau redis-server.exe (Windows). Gunakan redis-cli ping (linux/macOS) atau redis-cli.exe ping (windows) perintah untuk memeriksa status perkhidmatan. Gunakan klien Redis, seperti redis-cli, python, atau node.js untuk mengakses pelayan.
