当前位置:网站首页>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
边栏推荐
- SSRF漏洞file伪协议之[网鼎杯 2018]Fakebook1
- Excellent open source system recommendation of ThinkPHP framework
- FCOS3D label assignment
- Flink | 多流转换
- Data refresh of recyclerview
- 参数关键字Final,Flags,Internal,映射关键字Internal
- 搜索框效果的实现【每日一题】
- 2022-7-6 beginner redis (I) download, install and run redis under Linux
- 2022-7-6 Leetcode27.移除元素——太久没有做题了,为双指针如此狼狈的一天
- Learning breakout 2 - about effective learning methods
猜你喜欢
SSRF漏洞file伪协议之[网鼎杯 2018]Fakebook1
为租客提供帮助
2022-7-6 Leetcode 977. Square of ordered array
《厌女:日本的女性嫌恶》摘录
10 pictures open the door of CPU cache consistency
MySQL error 28 and solution
How far can it go to adopt a cow by selling the concept to the market?
Sliding rail stepping motor commissioning (national ocean vehicle competition) (STM32 master control)
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)
C语言数组相关问题深度理解
随机推荐
mysql ”Invalid use of null value“ 解决方法
. Net core about redis pipeline and transactions
Is it safe to open an account online now? Which securities company should I choose to open an account online?
社会责任·价值共创,中关村网络安全与信息化产业联盟对话网信企业家海泰方圆董事长姜海舟先生
xshell连接服务器把密钥登陆改为密码登陆
How can the PC page call QQ for online chat?
华为镜像地址
Shell batch file name (excluding extension) lowercase to uppercase
2022-7-6 Leetcode 977.有序数组的平方
参数关键字Final,Flags,Internal,映射关键字Internal
Thread pool reject policy best practices
Leecode3. Longest substring without repeated characters
Leetcode simple question sharing (20)
Navicat run SQL file import data incomplete or import failed
118. 杨辉三角
LIS longest ascending subsequence problem (dynamic programming, greed + dichotomy)
Laravel form builder uses
Distributed transaction solution
Did login metamask
Xshell connection server changes key login to password login