当前位置:网站首页>Details of redis core data structure & new features of redis 6
Details of redis core data structure & new features of redis 6
2022-07-07 13:57:00 【bingtanghulu_ six】
Catalog
1.list
redis stay redisDB There is a k-V structure , Stored in dictionary dict in ,dict Contains two hashTable structure , Exists as an array , among list Is an ordered data structure , Use double ended linked list quicklist and ziplist As an underlying implementation .
[[email protected] ~]# cd /usr/local/redis-6.2.7
[[email protected] redis-6.2.7]# src/redis-server redis.conf
[[email protected] redis-6.2.7]# src/redis-cli
127.0.0.1:6379> lpush a-list a b c
(integer) 3
127.0.0.1:6379> rpush a-list e f g
(integer) 6
127.0.0.1:6379> rpush a-list e 1100 f g
(integer) 10
127.0.0.1:6379> type a-list
list
127.0.0.1:6379> object encoding a-list
"quicklist"
list The data structure is as follows :
2.hash
hash Use when the field is small ziplist Storage , When it is relatively large hashtable Storage , The following figure shows object encoding key Code by ziplist Change to hashtable Scene .
127.0.0.1:6379> hset a-hash name caiji age 35 f1 v1 f2 v2 f3 v3
(integer) 5
127.0.0.1:6379> hgetall a-hash
1) "name"
2) "caiji"
3) "age"
4) "35"
5) "f1"
6) "v1"
7) "f2"
8) "v2"
9) "f3"
10) "v3"
127.0.0.1:6379> type a-hash
hash
127.0.0.1:6379> object encoding a-hash
"ziplist"
127.0.0.1:6379> hset a-hash f4 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
(integer) 1
127.0.0.1:6379> hgetall a-hash
1) "f1"
2) "v1"
3) "name"
4) "caiji"
5) "f2"
6) "v2"
7) "age"
8) "35"
9) "f3"
10) "v3"
11) "f4"
12) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
127.0.0.1:6379> type a-hash
hash
127.0.0.1:6379> object encoding a-hash
"hashtable"
hash The data structure is as follows , Can be set by redis.conf Configuration file configuration ziplist and hashtable The storage range of
Interview questions :string and hash Selection and advantages and disadvantages
3.Set
Set For unordered automatic de duplication data types , It is ordered when all are stored in integer , Bottom use intset data structure , When stored in strings, it is unordered , Use hashtable Storage .
127.0.0.1:6379> sadd a-set 1 2 3 5 10 9 4 4 4
(integer) 7
127.0.0.1:6379> smembers a-set
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "9"
7) "10"
127.0.0.1:6379> type a-set
set
127.0.0.1:6379> object encoding a-set
"intset"
127.0.0.1:6379> sadd a-set a
(integer) 1
127.0.0.1:6379> smembers a-set
1) "a"
2) "3"
3) "10"
4) "9"
5) "4"
6) "2"
7) "5"
8) "1"
127.0.0.1:6379> type a-set
set
127.0.0.1:6379> object encoding a-set
"hashtable"
intset The data structure is as follows , There are three elements .
4.Zset
skiplist principle , Use half to find , The index method forms an index tree to find data , The first K Layer index number =n/2^k.
127.0.0.1:6379> zadd a-zset 100 a 200 b 150 c
(integer) 3
127.0.0.1:6379> zrange a-zset 0 -1 withscores
1) "a"
2) "100"
3) "c"
4) "150"
5) "b"
6) "200"
127.0.0.1:6379> type a-zset
zset
127.0.0.1:6379> object encoding a-zset
"ziplist"
5.GeoHash
GeoHash It's an algorithm plus zset Realized
help @geo
geohash Underlying implementation , The longitude and latitude coding rules are as follows .gethash Only fuzzy ranges can be sent , No specific longitude and latitude will be sent , It is suitable for scenes with low accuracy
6. Interview FAQs
1. redis The multithreading model of , stay redis.conf Mid search thread-I/O There are detailed notes
redis Execution process :read- analysis resp agreement - Carry out orders - write in
Multithreading is off by default , You can set redis.conf in io-thread Parameters , Here's the picture
Configured with io-threads-do-reads Parameters later others I/O Threads can also perform read and write tasks
边栏推荐
- The reason why data truncated for column 'xxx' at row 1 appears in the MySQL import file
- MySQL error 28 and solution
- 高等數學---第八章多元函數微分學1
- The delivery efficiency is increased by 52 times, and the operation efficiency is increased by 10 times. See the compilation of practical cases of financial cloud native technology (with download)
- Talk about pseudo sharing
- 【日常训练--腾讯精选50】231. 2 的幂
- Dry goods | summarize the linkage use of those vulnerability tools
- Ways to improve the performance of raspberry pie
- LeetCode_ Binary search_ Medium_ 153. Find the minimum value in the rotation sort array
- Oracle advanced (V) schema solution
猜你喜欢
Mathématiques avancées - - chapitre 8 différenciation des fonctions multivariables 1
高等数学---第八章多元函数微分学1
118. Yanghui triangle
How far can it go to adopt a cow by selling the concept to the market?
Dry goods | summarize the linkage use of those vulnerability tools
Enregistrement de la navigation et de la mise en service du robot ROS intérieur (expérience de sélection du rayon de dilatation)
【堡垒机】云堡垒机和普通堡垒机的区别是什么?
Redis can only cache? Too out!
Flink | 多流转换
xshell连接服务器把密钥登陆改为密码登陆
随机推荐
Realize the IP address home display function and number home query
MySQL error 28 and solution
带你掌握三层架构(建议收藏)
Huawei image address
Navicat运行sql文件导入数据不全或导入失败
The difference between memory overflow and memory leak
Esp32 ① compilation environment
Data refresh of recyclerview
"Song of ice and fire" in the eleventh issue of "open source Roundtable" -- how to balance the natural contradiction between open source and security?
高等數學---第八章多元函數微分學1
Flink | 多流转换
How to make join run faster?
华为镜像地址
Getting started with cinnamon applet
云计算安全扩展要求关注的安全目标和实现方式区分原则有哪些?
requires php ~7.1 -> your PHP version (7.0.18) does not satisfy that requirement
Cinnamon taskbar speed
Leecode3. Longest substring without repeated characters
Best practice | using Tencent cloud AI willingness to audit as the escort of telephone compliance
2022-7-7 Leetcode 844.比较含退格的字符串