当前位置:网站首页>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
边栏推荐
- Social responsibility · value co creation, Zhongguancun network security and Information Industry Alliance dialogue, wechat entrepreneur Haitai Fangyuan, chairman Mr. Jiang Haizhou
- 118. Yanghui triangle
- 【面试高频题】难度 2.5/5,简单结合 DFS 的 Trie 模板级运用题
- What parameters need to be reconfigured to replace the new radar of ROS robot
- Best practice | using Tencent cloud AI willingness to audit as the escort of telephone compliance
- Show the mathematical formula in El table
- Laravel5 call to undefined function OpenSSL cipher IV length() error php7 failed to open OpenSSL extension
- 566. 重塑矩阵
- toRaw和markRaw
- 如何让join跑得更快?
猜你喜欢

118. 杨辉三角

"Song of ice and fire" in the eleventh issue of "open source Roundtable" -- how to balance the natural contradiction between open source and security?

2022-7-7 Leetcode 844. Compare strings with backspace

带你掌握三层架构(建议收藏)

2022-7-6 Leetcode27. Remove the element - I haven't done the problem for a long time. It's such an embarrassing day for double pointers

Realize the IP address home display function and number home query

室内ROS机器人导航调试记录(膨胀半径的选取经验)

Centso7 OpenSSL error Verify return code: 20 (unable to get local issuer certificate)

C语言数组相关问题深度理解

High end for 8 years, how is Yadi now?
随机推荐
[daily training -- Tencent select 50] 231 Power of 2
2022-7-6 Leetcode 977. Square of ordered array
PHP - laravel cache
C语言数组相关问题深度理解
Getting started with cinnamon applet
搜索框效果的实现【每日一题】
MySQL error 28 and solution
Ogre introduction
带你掌握三层架构(建议收藏)
JS function returns multiple values
2022-7-7 Leetcode 34. Find the first and last positions of elements in a sorted array
Is it safe to open an account online now? Which securities company should I choose to open an account online?
高等数学---第八章多元函数微分学1
Split screen bug notes
Navicat run SQL file import data incomplete or import failed
为租客提供帮助
What are the principles for distinguishing the security objectives and implementation methods that cloud computing security expansion requires to focus on?
[1] ROS2基础知识-操作命令总结版
How to make join run faster?
118. 杨辉三角