redis测试一亿的数据写入占多少内存

key是IPv4 或IPv6 字节+20字节。Varle 是50-200之间的随机数

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import redis 
import random 
import string
import socket
import struct
import multiprocessing
from random import choice
from string import ascii_uppercase
def IPv6_string():
        s_ipv6=':'.join('{:x}'.format(random.randint(0, 2**16 - 1)) for i in range(4)) + ':1'
        return s_ipv6 
def IPv4_string():
        s_ipv4=socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff)))
        return s_ipv4
def genRandomString(slen):
        return ''.join(choice(ascii_uppercase) for i in range(slen))
        #return ''.join(random.sample(string.ascii_letters + string.digits, slen))
rds = redis.StrictRedis(host='localhost', port=6379)
def rds_connet(interval):
        for num in range(1,interval):
                val=random.randint(50, 200)
                key=str(IPv4_string())+"_"+str(genRandomString(20))
                #print (key,val)
                rds.set(key, val)

if __name__ == "__main__":
        #rds_connet()
        p1 =  multiprocessing.Process(target = rds_connet, args = (33000000,))
        p2 =  multiprocessing.Process(target = rds_connet, args = (33000000,))
        p3 =  multiprocessing.Process(target = rds_connet, args = (34000000,))
        p1.start()
        p2.start()
        p3.start()
#       for p in multiprocessing.active_children():
#               print("child   p.name:" + p.name + "\tp.id" + str(p.pid))

Keyspace

db0:keys=100328396,expires=0,avg_ttl=0

Memory

used_memory:7577906016
used_memory_human:7.06G
used_memory_rss:9184866304
used_memory_rss_human:8.55G
used_memory_peak:7578123120
used_memory_peak_human:7.06G
used_memory_peak_perc:100.00%
used_memory_overhead:5087788214
used_memory_startup:860832
used_memory_dataset:2490117802
used_memory_dataset_perc:32.86%

结论:
V4 一亿个key 使用内存 used_memory_human:6.96G 系统分配内存 used_memory_rss_human:8.45G
数据格式v4:185.246.51.113_DPSKRCNKYPGUYFUIDXDK 170
redis测试一亿的数据写入占多少内存_第1张图片
V6 一亿个key 使用内存 used_memory_human:8.45G 系统分配内存 used_memory_rss_human:9.94G
数据格式 V6 :309d:136f:5d3c:916e:1_RBUZXCVUOTHLXPQRQYXX , 90
redis测试一亿的数据写入占多少内存_第2张图片

你可能感兴趣的:(redis)