Perl Project Improvement(2)Redis and Multi-Threads and Error Handler for System
1 Redis Command and Knowledge
Always open this URL for references of all the command
http://redis.io/commands
Here is how we connect and execute some command
> cd ~/tool/redis-stable/
> src/redis-cli -h stage-sillycat-002.sillycat.amazonaws.com -p 6379
Operation on hash value on Redis
> hset source_11 in_process 1
> hget source_11 in_process
> hdel source_11 in_process
I am using these for Redis
use strict;
use warnings;
use Redis;
package lib::RedisClientHandler;
sub init {
my $configService = &loadService('configService');
my $logger = &loadLogger();
my $host = $configService->{redisHost};
my $port = $configService->{redisPort};
$logger->debug("init Redis connection-----");
$logger->debug("host = " . $host);
$logger->debug("port = " . $port);
$logger->debug("--------------------------");
my $redis = Redis->new(server => $host . ":" . $port);
$logger->debug("RedisSerivce init success " . + $redis);
my $register = IOC::Registry->instance();
my $container = $register->getRegisteredContainer('JobsProducer');
$container->register(IOC::Service->new('redisService'
=> sub { $redis }));
return 1;
}
I am using set in Redis
sub popTask {
die "Wrong arguments" if @_ != 1;
#services
my $logger = &loadLogger();
my $redisService = &loadService('redisService');
#params
my $key = $_[0];
my $task = $redisService->spop($key);
return $task;
}
sub pushTask {
die "Wrong arguments" if @_ != 2;
#services
my $logger = &loadLogger();
my $redisService = &loadService('redisService');
#params
my $key = $_[0];
my $task = $_[1];
$redisService->sadd($key, $task);
return 1;
}
sub checkTask {
die "Wrong arguments" if @_ != 2;
#services
my $logger = &loadLogger();
my $redisService = &loadService('redisService');
#params
my $key = $_[0];
my $task = $_[1];
return $redisService->sismember($key, $task);
}
Directly use integer there as well
sub incrCount {
die "Wrong arguments" if @_ != 1;
#services
my $logger = &loadLogger();
my $redisService = &loadService('redisService');
#parmas
my $key = $_[0];
$redisService->incr($key);
return 1;
}
sub delCount {
die "Wrong arguments" if @_ != 1;
my $logger = &loadLogger();
my $redisService = &loadService('redisService');
my $key = $_[0];
$redisService->del($key);
return 1;
}
sub getCount {
die "Wrong arguments" if @_ != 1;
#services
my $logger = &loadLogger();
my $redisService = &loadService('redisService');
#params
my $key = $_[0];
return $redisService->get($key);
}
Multiple Thread DBIx
http://search.cpan.org/~darnold/DBIx-Threaded-0.10/lib/DBIx/Threaded.pm
http://search.cpan.org/~dwheeler/DBIx-Connector-0.53/lib/DBIx/Connector.pm
cpan DBIx::Connector
Multiple Thread is using as well, and then I switched my mysql driver.
use threads;
use threads::shared;
use Time::Piece;
use strict;
use warnings;
use DBI;
use Data::Dumper;
use DBIx::Connector;
Error Handler for System
http://affy.blogspot.com/p5be/ch13.htm
http://www.perlmonks.org/?node_id=486200
http://perldoc.perl.org/functions/system.html
References:
http://search.cpan.org/~dwheeler/DBIx-Connector-0.53/lib/DBIx/Connector.pm
分享到:
相关推荐
redis-stack-server-7.2.0-v9.arm64.snap redis-stack-server-7.2.0-v9.bionic.arm64.tar.gz redis-stack-server-7.2.0-v9.bionic.x86_64.tar.gz redis-stack-server-7.2.0-v9.bullseye.x86_64.tar.gz redis-stack-...
redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm...
**Redis 全面检查工具:redis-full-check** Redis 是一款高性能的键值存储系统,广泛应用于缓存、数据库和消息中间件等场景。在实际应用中,为了确保 Redis 的稳定性和数据一致性,需要定期对 Redis 实例进行健康...
压缩文件包括tomcat-redis-session-manager-master-2.0.0.jar、jedis-2.7.3.jar、commons-pool2-2.3.jar三个jar包使用方法请参照https://github.com/jcoleman/tomcat-redis-session-manager。apache-tomcat-8.5.33....
《深入理解Tomcat-Redis-Session-Manager:在Tomcat7和Tomcat8中的应用》 在现代Web应用程序开发中,session管理是一个至关重要的环节,它涉及到用户会话的持久化和跨请求的数据共享。传统的session管理方式在高...
`tomcat-redis-session-manager`就是这样一款解决方案,它将Tomcat的session管理与Redis相结合,实现了跨服务器的session共享。 首先,让我们理解`tomcat-redis-session-manager`的核心概念。这是一个开源项目,它...
这个压缩包"redis-7.2-x64-for-windows-bin.zip"是Redis 7.2版本的64位Windows构建,包含了运行Redis服务所需的所有组件。 1. **Redis 7.2**: Redis是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和...
而`redis-py-cluster`是Python连接Redis集群的一个库,它允许Python开发者方便地与Redis集群进行交互。`redis-py-cluster-1.3.5.tar.gz`这个压缩包文件包含了该库的源代码和相关资源,版本号为1.3.5。 首先,让我们...
标题提及的是"redis-desktop-manager-0.9.8 for mac and windows",这意味着该资源包含了适用于Mac OS和Windows操作系统的Redis Desktop Manager 0.9.8版本。Redis Desktop Manager在0.9.4版本之后,官方停止了对...
tomcat-redis-session-manager-2.0.0.jar jedis-2.5.2.jar commons-pool2-2.2.jar 2.修改 conf 目录下的 context.xml 文件 host="localhost" port="6379" database="0" maxInactiveInterval="60" /> ...
8. **redis-check-aof.exe**: 类似于redis-check-rdb,但专门用于检查AOF(Append Only File)持久化文件的完整性。AOF是另一种持久化方式,记录所有改变数据库状态的操作,保证数据的完整性和一致性。 9. **redis-...
"redis-desktop-manager-0.9.9 for Windows" 是一个专门为Windows用户设计的图形化界面工具,帮助用户更直观、便捷地管理和操作Redis数据库。 Redis Desktop Manager是一款功能强大的Redis客户端,其0.9.9版本为...
2. 解压:`tar -zxvf redis-2.8.13.tar.gz` 3. 编译:`cd redis-2.8.13`,然后`make` 4. 安装:`sudo make install` 5. 启动Redis服务:`src/redis-server` 6. 配置:可以通过修改`redis.conf`来配置Redis服务,例如...
"Redis++使用说明,windows下编译Redis-Plus-Plus" 在这篇文章中,我们将详细介绍如何在Windows平台下编译Redis++,包括编译hiredis.lib和Win32_Interop.lib静态库文件的过程,然后安装Cmake并编译Redis++,最后...
Redis-7.0.4-x64 for Windows 64位版 Redis 7.0.4 基于最新版的redis 7.0.4源码编译而成
redis-5.0.7-x64-for-windows编译-bin.rar Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python...
- 解压"redis-windows-7.2.4.zip",找到`redis-server.exe`启动文件。 - 运行`redis-server.exe`,默认情况下,Redis监听6379端口。 - 可以通过配置文件`redis.windows.conf`修改默认设置,如端口、内存限制、...
【标题】"tomcat-redis-session-manager jar包"是一个用于集成Redis进行Session管理的Java库,特别设计用于Apache Tomcat服务器。这个库使得在多台Tomcat服务器之间共享和协调用户的Session数据成为可能,从而提高了...
Redis的核心组件包括`redis-server.exe`(服务器进程)、`redis-cli.exe`(命令行客户端)以及`redis-benchmark.exe`(性能测试工具)等。用户需要通过`redis-server.exe`启动服务,并通过`redis-cli.exe`进行交互式...
tomcat-redis-session-manager的jar包,适用tomcat7版本。jar构建来自GitHub上开源项目打包