Rumah pangkalan data Redis redis用在哪里

redis用在哪里

Jun 25, 2019 am 11:45 AM
redis

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Membina Mod Kluster Redis Cara Membina Mod Kluster Redis Apr 10, 2025 pm 10:15 PM

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

Cara melaksanakan redis yang mendasari Cara melaksanakan redis yang mendasari Apr 10, 2025 pm 07:21 PM

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.

Apa yang perlu dilakukan sekiranya pelayan redis tidak dapat dijumpai Apa yang perlu dilakukan sekiranya pelayan redis tidak dapat dijumpai Apr 10, 2025 pm 06:54 PM

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.

Cara Melihat Semua Kekunci di Redis Cara Melihat Semua Kekunci di Redis Apr 10, 2025 pm 07:15 PM

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 membaca kod sumber redis Cara membaca kod sumber redis Apr 10, 2025 pm 08:27 PM

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.

Cara menggunakan perintah redis Cara menggunakan perintah redis Apr 10, 2025 pm 08:45 PM

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).

Cara Mengosongkan Data dengan Redis Cara Mengosongkan Data dengan Redis Apr 10, 2025 pm 08:03 PM

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).

Cara memulakan pelayan dengan redis Cara memulakan pelayan dengan redis Apr 10, 2025 pm 08:12 PM

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.

See all articles