Nosql之Redis: hash数据类型及操作命令
hash类型 ? 是一个string类型的field和value的映射表. ? 它的添加,删除操作都是0(1)(平均). ? 适合用于存储对象. 1: hset? 描述: 设置哈希表key中域field的值设为value,如里key不存在,则先创建.存在则覆盖. 返回: 如果field是哈希表中新创建的,则返回1.已经
hash类型
? 是一个string类型的field和value的映射表.
? 它的添加,删除操作都是0(1)(平均).
? 适合用于存储对象.
1: hset?
描述: 设置哈希表key中域field的值设为value,如里key不存在,则先创建.存在则覆盖.
返回: 如果field是哈希表中新创建的,则返回1.已经存在且旧值已被新值覆盖,刚返回0.
操作如下:
redis 127.0.0.1:6379> hset uinfo_1 name tw
(integer) 1
redis 127.0.0.1:6379> hget uinfo_1 name
“tw”
redis 127.0.0.1:6379> hset uinfo_1 name tw2
(integer) 0
redis 127.0.0.1:6379> hget uinfo_1 name
“tw2″
2:hget
描述:返回哈希表KEY中给定域field的值.
返回: 如果存在返回指定field的值,不存在时返回nil.
操作如下:
redis 127.0.0.1:6379> hget user_1 name
(nil)
redis 127.0.0.1:6379> hget uinfo_1 name
“tw2″
3:hsetnx
描述:将哈希表key中的域field的值设置为value,当且仅当域field不存在。若域field已经存在,该操作无效。如果key不存在,一个新哈希表被创建并执行HSETNX命令.
返回值: 1表示新的Field被设置了新值,0表示Key或Field已经存在,该命令没有进行任何操作。
操作如下:
先查看key中所有字段及值
redis 127.0.0.1:6379> hgetall uinfo_1
1) “name”
2) “tw2″
3) “age”
4) “19″
redis 127.0.0.1:6379> hsetnx uinfo_1 sex 1
(integer) 1
redis 127.0.0.1:6379> hsetnx uinfo_1 sex 0
(integer) 0
redis 127.0.0.1:6379> hgetall uinfo_1
1) “name”
2) “tw2″
3) “age”
4) “19″
5) “sex”
6) “1″
redis 127.0.0.1:6379> hsetnx uinfo_2 name tw2
(integer) 1
redis 127.0.0.1:6379> hgetall uinfo_2
1) “name”
2) “tw2″
?
4: hmset
描述: 同时交多个field-value设置到哈希表中.此命令会覆盖哈希表中已存在的域。如果key不存在,一个空哈希表被创建并执行hmset操作。
返回值:执行成功返回ok,当key不是哈希类型时,返回一个错误.
操作如下:
redis 127.0.0.1:6379> set title_1 val_1
OK
redis 127.0.0.1:6379> hmset title_1 val_2
(error) ERR wrong number of arguments for ‘hmset’ command
redis 127.0.0.1:6379> hmset uinfo_1 name aaa age 30
OK
redis 127.0.0.1:6379> hgetall uinfo_1
1) “name”
2) “aaa”
3) “age”
4) “30″
5) “sex”
6) “1″
5:hmget
描述: 返回哈希表key中,一个或多个给定域的值。如果给定的域不存在于哈希表,那么返回一个nil值。
返回值:返回查询域的值.
操作如下:
redis 127.0.0.1:6379> hmget uinfo_1 name age
1) “aaa”
2) “30″
6:hgetall
描述:返回哈希表key中,所有的域和值。在返回值里,紧跟每个域(field name)之后是域的值
(value),所以返回值的长度是哈希表大小的两倍。
返回值:以列表形式返回哈希表中域和值.如果key不存,返回空列表.
操作:见前面hsetnx.
7:hdel
描述:删除哈希表key中的一个或多个指定域,不存在的域将被忽略。
返回值:被成功移除的域的数量,不包括被忽略的域。
操作如下:
redis 127.0.0.1:6379> hgetall uinfo_1
1) “name”
2) “aaa”
3) “age”
4) “30″
5) “sex”
6) “1″
redis 127.0.0.1:6379> hdel uinfo_1 name age
(integer) 2
redis 127.0.0.1:6379> hgetall uinfo_1
1) “sex”
2) “1″
8: hexists
描述:查看哈希表key中,给定域field是否存在
返回值:存在返回1,不存在返回0。
操作如下:
redis 127.0.0.1:6379> hexists uinfo_1 name
(integer) 0
redis 127.0.0.1:6379> hexists uinfo_1 sex
(integer) 1
9: hincrby
描述:为哈希表key中的域field的值加上增量increment。增量也可以为负数,相当于对给定域进
行减法操作。
返回值:执行HINCRBY命令之后,哈希表key中域field的值。
操作如下:
redis 127.0.0.1:6379> hgetall uinfo_1
1) “sex”
2) “1″
redis 127.0.0.1:6379> hincrby uinfo_1 sex 20
(integer) 21
redis 127.0.0.1:6379> hincrby uinfo_1 sex -10
(integer) 11
10:hlen
描述:返回哈希表key中域的数量。
返回值:哈希表中域的数量。当key不存在时,返回0。
11: hkeys
描述:返回哈希表key中的所有域。
返回值:一个包含哈希表中所有域的表。当key不存在时,返回一个空表。
12,hvals
描述:返回哈希表key中的所有值。
返回值:一个包含哈希表中所有值的表。当key不存在时,返回一个空表。

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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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

Cara Mengosongkan Data Redis: Gunakan perintah Flushall untuk membersihkan semua nilai utama. Gunakan perintah flushdb untuk membersihkan nilai utama pangkalan data yang dipilih sekarang. Gunakan Pilih untuk menukar pangkalan data, dan kemudian gunakan FlushDB untuk membersihkan pelbagai pangkalan data. Gunakan perintah DEL untuk memadam kunci tertentu. Gunakan alat REDIS-CLI untuk membersihkan data.

Untuk membaca giliran dari Redis, anda perlu mendapatkan nama giliran, membaca unsur -unsur menggunakan arahan LPOP, dan memproses barisan kosong. Langkah-langkah khusus adalah seperti berikut: Dapatkan nama giliran: Namakannya dengan awalan "giliran:" seperti "giliran: my-queue". Gunakan arahan LPOP: Keluarkan elemen dari kepala barisan dan kembalikan nilainya, seperti LPOP Queue: My-Queue. Memproses Baris kosong: Jika barisan kosong, LPOP mengembalikan nihil, dan anda boleh menyemak sama ada barisan wujud sebelum membaca elemen.

Pada sistem CentOS, anda boleh mengehadkan masa pelaksanaan skrip LUA dengan mengubah fail konfigurasi REDIS atau menggunakan arahan REDIS untuk mengelakkan skrip jahat daripada memakan terlalu banyak sumber. Kaedah 1: Ubah suai fail konfigurasi Redis dan cari fail konfigurasi Redis: Fail konfigurasi Redis biasanya terletak di /etc/redis/redis.conf. Edit Fail Konfigurasi: Buka fail konfigurasi menggunakan editor teks (seperti Vi atau nano): sudovi/etc/redis/redis.conf Tetapkan had masa pelaksanaan skrip lua: Tambah atau ubah suai baris berikut dalam fail konfigurasi untuk menetapkan masa pelaksanaan maksimum skrip lua (unit: milidor)

Gunakan alat baris perintah redis (redis-cli) untuk mengurus dan mengendalikan redis melalui langkah-langkah berikut: Sambungkan ke pelayan, tentukan alamat dan port. Hantar arahan ke pelayan menggunakan nama arahan dan parameter. Gunakan arahan bantuan untuk melihat maklumat bantuan untuk arahan tertentu. Gunakan perintah berhenti untuk keluar dari alat baris arahan.

Kaunter Redis adalah satu mekanisme yang menggunakan penyimpanan pasangan nilai utama REDIS untuk melaksanakan operasi pengiraan, termasuk langkah-langkah berikut: mewujudkan kekunci kaunter, meningkatkan tuduhan, mengurangkan tuduhan, menetapkan semula, dan mendapatkan tuduhan. Kelebihan kaunter Redis termasuk kelajuan cepat, konkurensi tinggi, ketahanan dan kesederhanaan dan kemudahan penggunaan. Ia boleh digunakan dalam senario seperti pengiraan akses pengguna, penjejakan metrik masa nyata, skor permainan dan kedudukan, dan pengiraan pemprosesan pesanan.

Terdapat dua jenis strategi tamat tempoh data REDIS: Penghapusan berkala: Imbasan berkala untuk memadamkan kunci yang telah tamat tempoh, yang boleh ditetapkan melalui parameter-cap-cap-rempah yang telah tamat tempoh dan parameter kelewatan-cap-remove-time-time. Penghapusan Lazy: Periksa kekunci yang telah tamat tempoh hanya apabila kunci dibaca atau ditulis. Mereka boleh ditetapkan melalui parameter lazon-lazy-expire-expire-expire, lazy-lazy-user-del parameter.

Dalam sistem Debian, panggilan sistem Readdir digunakan untuk membaca kandungan direktori. Jika prestasinya tidak baik, cuba strategi pengoptimuman berikut: Memudahkan bilangan fail direktori: Split direktori besar ke dalam pelbagai direktori kecil sebanyak mungkin, mengurangkan bilangan item yang diproses setiap panggilan readdir. Dayakan Caching Kandungan Direktori: Bina mekanisme cache, kemas kini cache secara teratur atau apabila kandungan direktori berubah, dan mengurangkan panggilan kerap ke Readdir. Cafh memori (seperti memcached atau redis) atau cache tempatan (seperti fail atau pangkalan data) boleh dipertimbangkan. Mengamalkan struktur data yang cekap: Sekiranya anda melaksanakan traversal direktori sendiri, pilih struktur data yang lebih cekap (seperti jadual hash dan bukannya carian linear) untuk menyimpan dan mengakses maklumat direktori
