1. import pyssdb
  2. import random
  3. import time
  4.  
  5. c = pyssdb.Client('192.168.1.250',)
  6.  
  7. chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'
  8. digits = ''
  9. def random_generate_string(length):
  10. return ''.join(random.sample(chars, length))
  11. def random_generate_number(length):
  12. if length > len(digits):
  13. digit_list = random.sample(digits, len(digits))
  14. digit_list.append(random.choice(digits))
  15. return ''.join(digit_list)
  16. return ''.join(random.sample(digits, length))
  17. def random_generate_data(num):
  18. c = [num]
  19. phone_num_seed =
  20. def _random_generate_data():
  21. c[] +=
  22. return (
  23. c[],
  24. "last_name_" + str(random.randrange()),
  25. "first_name_" + str(random.randrange()),
  26. random.choice('MF'),
  27. random.randint(, ),
  28. phone_num_seed + c[],
  29. random_generate_string(),
  30. random_generate_string(),
  31. time.strftime("%Y-%m-%d %H:%M:%S")
  32. )
  33. return _random_generate_data
  34.  
  35. #MULTI_HSET
  36. batch_count =
  37. batch_size =
  38. begin_time = time.time()
  39. loop_count=
  40. all_count=
  41. for x in range(loop_count):
  42. batch_count = x * batch_size
  43. all_count=all_count+batch_size
  44. gen_fun = random_generate_data(batch_count)
  45. batch_data = [gen_fun() for x in range(batch_size)]
  46.  
  47. for a in batch_data :
  48. #成功写入数据量:100000个!
  49. #总共耗时(s): 63.21674847602844
  50. c.multi_hset('person_' + str(a[]), 'last_name', a[],'first_name',a[],'Sex',a[],'Age',a[],'Tel',a[],'Memo',a[],'Date',a[])
  51. #print(c.hgetall('person_'+ str(a[])))
  52. print('成功写入数据量:'+str(all_count)+"个!")
  53.  
  54. end_time = time.time()
  55. total_sec = end_time - begin_time
  56. print("总共耗时(s): " + str(total_sec))
  57. c.disconnect()
  58. print('已成功断开链接!')

写在最后:

1、不要过份追求连接池,因为我们的PYTHON一般当脚本使用,不涉及到高并发,多线程,不需要连接池,只有一个连接,连续操作而以,以前的想法是误区,需要高并发使用LUA去!

2、感觉速度还是可以接受的,使用PYTHON就是因为它方便,能快速实现想法,这就够了!

python3生成测试数据,并写入ssdb的更多相关文章

  1. db:seed 更好的生成测试数据

    make:model -m -> 在database/migrations/目录下生成的table表中设置表的字段名和字段类型->在app/目录下对应的模型文件中设置可添加字段 -> ...

  2. Spark2.2+ES6.4.2(三十一):Spark下生成测试数据,并在Spark环境下使用BulkProcessor将测试数据入库到ES

    Spark下生成2000w测试数据(每条记录150列) 使用spark生成大量数据过程中遇到问题,如果sc.parallelize(fukeData, 64);的记录数特别大比如500w,1000w时 ...

  3. Android 建立文件夹、生成文件并写入文本文件内容

    一.首先添加权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">& ...

  4. Powerdesigner中如何生成测试数据

    设计表完成以后,我们需要生成一些测试数据,可以直接更新到数据库中,下面我们就来试试: 第一步:建立需要的Profiles测试文件,[Model]--[Test Data Profiles],如图所示: ...

  5. SQL Server中生成测试数据

    原文:SQL Server中生成测试数据 简介      在实际的开发过程中.很多情况下我们都需要在数据库中插入大量测试数据来对程序的功能进行测试.而生成的测试数据往往需要符合特定规则.虽然可以自己写 ...

  6. 使用Visual Studio给SQL生成测试数据

    参考:http://www.cnblogs.com/CareySon/archive/2012/02/20/2359444.html 使用VS2010的数据生成计划来生成测试数据 以下面两个表来做例子 ...

  7. pt-online-schema-change 测试使用-包含生成测试数据

    pt-online-schema-change 测试使用-包含生成测试数据 # 参考网址: https://www.2cto.com/database/201703/618280.html 一.简要描 ...

  8. 通过 Python_Faker 生成测试数据

    通过 Python_Faker 生成测试数据 一.介绍 在软件需求.开发.测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,你不可能通过手工来生成(最傻的方法)可能 ...

  9. 使用Hypothesis生成测试数据

    Hypothesis是Python的一个高级测试库.它允许编写测试用例时参数化,然后生成使测试失败的简单易懂的测试数据.可以用更少的工作在代码中发现更多的bug. 安装 pip install hyp ...

随机推荐

  1. 一个android控件资源网站

    http://www.androidviews.net/ 里面有各种常用控件,赞~

  2. io学习2-磁盘阵列RAID

    磁盘阵列 RAID(Redundant ArrayOf Inexpensive Disks) 如果你是一位数据库管理员或者经常接触服务器,那对RAID应该很熟悉了,作为最廉价的存储解决方案,RAID早 ...

  3. REST接口设计规范

    URI格式规范 URI(Uniform Resource Identifiers) 统一资源标示符 URL(Uniform Resource Locator) 统一资源定位符 URI的格式定义如下: ...

  4. 【EasyNetQ】- 使用SSL连接

    EasyNetQ可以通过SSL连接.戈登·库尔特(Gordon Coulter)撰写的这本指南最初是针对一个提出的问题而写的. 首先,您必须仔细按照https://www.rabbitmq.com/s ...

  5. 关于Assert

    如果没有连1394线debug,assert不影响程序的执行,只会在dbgview里面答应"Assertion xxxx"这样的调试信息. 当连着1394线的时候,OS会被hang ...

  6. Java中break和continue的区别

    continue,继续下一个循环的运算, break,跳出循环

  7. php在类里如何调用call_user_func_array《细说php2》

  8. Spring事务只对运行时异常回滚

    我们在使用Spring时候一般都知道事务在遇到异常的时候会回滚,岂不知Spring的事务默认只有在发生运行时异常即:RunTimeException时才会发生事务,如果一个方法抛出Exception或 ...

  9. HDU1859 最小长方形 (水

    最小长方形 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  10. ios 全方位修改工程名

    本文针对于彻底修改iOS工程名,不需要另外建工程,会整理的跟新工程完全一样 1. 选中旧工程名,改为新的 然后选择rename 2. 依次选择黄色文件夹,修改名字,千万不要在Xcode外修改!!! 修 ...