x-redis

多线程 c++ redis 服务器和客户端
授权协议 GPL
开发语言 C/C++
所属分类 服务器软件、 缓存服务器
软件类型 开源软件
地区 国产
投 递 者 龚运乾
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

这是一个多线程 c++ redis 服务器和客户端。

单核心的公开环境不到100k:redis 整体性能比 xredis 快 10-25%qps(因为使用 STL 和xredis 的内存管理成本线程安全)内核瓶颈 80-90%cpu benchmark.pdf

Redis速度有多快?

Redis包含了一个redis-benchmark实用程序,它可以模拟N个客户端执行的运行命令,同时发送M个总查询(类似于Apache的ab实用程序)。

在下面你会发现一个基于Linux基准测试的完整输出。

支持以下选项:

Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]

 -h <hostname>      Server hostname (default 127.0.0.1)
 -p <port>          Server port (default 6379)
 -s <socket>        Server socket (overrides host and port)
 -a <password>      Password for Redis Auth
 -c <clients>       Number of parallel connections (default 50)
 -n <requests>      Total number of requests (default 100000)
 -d <size>          Data size of SET/GET value in bytes (default 2)
 --dbnum <db>       SELECT the specified db number (default 0)
 -k <boolean>       1=keep alive 0=reconnect (default 1)
 -r <keyspacelen>   Use random keys for SET/GET/INCR, random values for SADD
  Using this option the benchmark will expand the string __rand_int__
  inside an argument with a 12 digits number in the specified range
  from 0 to keyspacelen-1. The substitution changes every time a command
  is executed. Default tests use this to hit random keys in the
  specified range.
 -P <numreq>        Pipeline <numreq> requests. Default 1 (no pipeline).
 -q                 Quiet. Just show query/sec values
 --csv              Output in CSV format
 -l                 Loop. Run the tests forever
 -t <tests>         Only run the comma separated list of tests. The test
                    names are the same as the ones produced as output.
 -I                 Idle mode. Just open N idle connections and wait.
  • EN 项目介绍 基于bahir-flink二次开发,相对bahir调整的内容有: 1.使用Lettuce替换Jedis,同步读写改为异步读写,大幅度提升了性能 2.增加了Table/SQL API,增加维表查询支持 3.增加查询缓存(支持增量与全量) 4.增加支持整行保存功能,用于多字段的维表关联查询 5.增加限流功能,用于Flink SQL在线调试功能 6.增加支持Flink高版本(包括1.1

  • 连接池使用原因 在某些业务场景中使用了redis作为分布式缓存,在做业务活动的时候,比如秒杀活动,会一时间涌入大量的流量,这个时候和redis server进行网络连接的话就比较耗费资源和时间,直接影响接口的响应时间。 针对这种某一时刻的突发性流量,使用连接池是比较合适的。 ps:spring-boot-starter-redis默认是不使用连接池的 连接池 SpringBoot 1.x 默认采用

  • 1.5.X spring: redis: url: redis://user:password@example.com:6379 #该地址配置以后会重置host,port,password的规则。 host: 127.0.0.1 port: 6379 password: #密码 database: 0 #指定数据库,默认为0 timeou

  • 这块冲突还是挺难受的,解决方案链接 https://my.oschina.net/u/3714931/blog/1607973 具体解决问题步骤: 项目开发过程中,经常会遇到jar冲突,然后maven根据自己的规则进行冲突解决,导致项目在运行的过程中报错。 1、maven自动解决依赖冲突的规则是什么? 2、如何查看当前项目的maven的依赖树? 3、如何从依赖树中找到自己预期的版本,是被那个jar

  • Redis之坑:spring-data-redis中的Redis事务 Redis之坑:理解Redis事务 Redis之坑:Redis与MySQL中事务的区别 Transaction之坑:数据库事务 Transaction之坑:Spring中配置Transaction与不配置有何区别 Transaction之坑:分析sql执行结果,主动促使事务rollback SessionCallback Red

  • 版权所有,转载请注明原文链接。 谷歌的go-redis@v6.15.7对redis cluster集群提供了支持,这也是相对于redigo的一个重要优势,后者目前还没有提供集群支持。go-redis@v6.15.7的主要功能点如下: 1.客户端缓存了每一组连续的slot所对应的起止slotID和存储节点列表,以提高一次性访问的成功率,避免MOVED重定向。 type clusterSlot str

  • 一.环境准备 1.下载tomcat 项目地址:https://tomcat.apache.org/download-80.cgi 8.5.55版地址:https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.55/bin/apache-tomcat-8.5.55.zip 2.下载tomcat-cluster-redis-ses

  • Lua简介 Lua是一种开源、简单易学、轻量小巧的脚本语言,用标准C语言编写。 其设计的目的就是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Redis从2.6版本开始支持Lua脚本,Redis使用Lua可以: 原子操作。Redis会将整个脚本作为一个整体执行,不会被中断。可以用来批量更新、批量插入 减少网络开销。多个Redis操作合并为一个脚本,减少网络时延 代码复用。客户端发送

 相关资料
  • 问题内容: 我正在尝试使用我一直在努力的客户端/服务器程序实现多线程。我需要允许多个客户端同时连接到服务器。我目前有4类:客户端,服务器,协议和用于处理线程的工作器。以下代码是我对这些类的拥有的代码: SocketServer类: SocketClient类别: 协议类别: ClientWorker类: 当我运行服务器和客户端时,一切正常。然后,当我尝试运行另一个客户端时,它只是挂在那儿,没有提示

  • 我试图更多地熟悉Redis,我发现Redis6的发行说明如下: Redis6进入了一个新时代:虽然它保留了一个核心的单线程数据访问接口,但I/O现在是线程化的。 保留“核心单线程数据访问接口”是否意味着所有数据访问命令(如GET、SET),无论redis实例中的哪个数据库,都必须通过这个接口(而不是使用多个redis实例时的多个数据访问接口)? 谢了!

  • Redis 服务器 Redis 服务器命令主要是用于管理 redis 服务。 实例 以下实例演示了如何获取 redis 服务器的统计信息: Redis 服务器命令 Redis Bgrewriteaof 命令 Redis Bgrewriteaof 命令用于异步执行一个 AOF(AppendOnly File) 文件重写操作。重写会创建一个当前 AOF 文件的体积优化版本。 即使 Bgrewritea

  • 异步Redis客户端 连接池(连接池默认开启) use AsyncRedis; //关闭连接池 AsyncRedis::enablePool(false); //开启连接池 AsyncRedis::enablePool(true); 使用AsyncRedis use AsyncRedis; //设置超时时间 AsyncRedis::s

  • !> 本客户端不再推荐使用,推荐使用Swoole\Runtime::enableCoroutine + phpredis 或 predis 的 方式,即一键协程化原生PHP的redis客户端使用. 使用示例 Co\run(function () { $redis = new Swoole\Coroutine\Redis(); $redis->connect('127.0.0.1',

  • 安装 composer require hyperf/redis 配置 配置项 类型 默认值 备注 host string 'localhost' Redis 地址 auth string 无 密码 port integer 6379 端口 db integer 0 DB cluster.enable boolean false 是否集群模式 cluster.name string null 集

  • 本文向大家介绍Java多线程实现聊天客户端和服务器,包括了Java多线程实现聊天客户端和服务器的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java聊天室代码,供大家参考,具体内容如下 主要涉及知识 ·Java中GUI程序的编写,包括事件监听机制。 ·Java的网络通信编程,ServerSocket,Socket类的使用。 ·Java中多线程的编程,Thread类,Runnable

  • 问题内容: 我正在满足以下要求的应用程序(Spring): 从Redis Server1读取数据 从Redis Server2读取数据 从Redis Server3读取数据 和 将信息保存到MySQL。 有人可以给我们一个思路,使用Spring Data Redis连接到不同的Redis服务器。 获得了链接:http : //forum.spring.io/forum/spring- projec