public class WnsRedisFactory {

              private static Cache pool = null;
private static JedisConnectionFactory redisConnFactory = null; //对主缓存 test的操作
private static Cache getInstance() {
if (pool == null) {
pool = Redis.use("test");
}
return pool;
}
/**
* 通过key删除
*
* @param key
*/
public static void del(String key) throws Exception {
Cache redis = null; redis = getInstance();
redis.del(key); } public static void del(String key, String field) throws Exception {
Cache redis = null; redis = getInstance();
redis.hdel(key, field); }
/**
* 添加key value 并且设置存活时间
*
* @param key
* @param value
* @param liveTime
*/
public static void set(String key, String value, int liveTime) throws Exception {
Cache redis = null; redis = getInstance();
Jedis jedis =redis.getJedis();
jedis.set(key, value);
redis.expire(key, liveTime);
redis.close(jedis); } public static Long decrby(String key, int value) throws Exception {
Cache redis = null; redis = getInstance();
return redis.decrBy(key, value); } public static Long decr(String key) throws Exception {
Cache redis = null; redis = getInstance();
return redis.decr(key); }
/**
* 设置或者清除指定key的value上的某个位置的比特位,如果该key原先不存在,则新创建一个key,其value将会自动分配内存,
* 直到可以放下指定位置的bit值。
*
* @param key
* @param offset
* @param value true代表1,false代表0
* @return
* @return 返回原来位置的bit值是否是1,如果是1,则返回true,否则返回false。
*/
public static void setbit(String key,Long offset ,Boolean value,int liveTime)
{
Cache redis = null; redis = getInstance();
Jedis jedis = redis.getJedis();
try {
jedis.setbit(key, offset, value);
}
finally {redis.close(jedis);}
redis.expire(key, liveTime); } //计算传人二进制字符串 1的个数
public static long bitcount(String key)
{
Cache redis = null; redis = getInstance();
Jedis jedis = redis.getJedis();
try {
return jedis.bitcount(key);
}
finally {redis.close(jedis);} } //通过传人的op(and/or)将传人的二进制 与/非 传回结果
public static long bitop(BitOP op,String destKey,String ... srcKeys)
{
Cache redis = null;
redis = getInstance(); Jedis jedis = redis.getJedis();
long result = 0; result = jedis.bitop(op, destKey, srcKeys);
redis.close(jedis);
return result;
}
/**
* bitMap进行and运算
* RedisKeys.DAYBITOPDESTKEY 为静态变量
*/
// 换一种实现方式,不用 bitset 类,直接用redis的bit操作
public static int bitMapAnd( String...keys){
int result = 0;
BitOP op = BitOP.AND; try {
bitop(op, RedisKeys.DAYBITOPDESTKEY, keys);
result = (int) WnsRedisFactory.bitcount(RedisKeys.DAYBITOPDESTKEY); return result; } catch (Exception e) {
System.out.println("AND算法异常");
}
return 0;
} /**
* bitMap进行OR运算
*/
// 换一种实现方式,不用 bitset 类,直接用redis的bit操作
public static int bitMapOr( String...keys){
int result = 0;
BitOP op = BitOP.OR; try {
bitop(op, RedisKeys.DAYBITOPDESTKEY, keys);
result = (int) WnsRedisFactory.bitcount(RedisKeys.DAYBITOPDESTKEY); return result;
} catch (Exception e) {
System.out.println("OR算法异常");
}
return 0;
}
}

redis的一些操作的更多相关文章

  1. python之redis和memcache操作

    Redis 教程 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据 ...

  2. redis的hash操作在集中式session中的应用

    在集群部署时,为了高可用性的目的,往往把session进行共享,共享分为两种:session复制和集中式管理. redis在session集中式管理中可以起到比较大的作用. 制约session集中式共 ...

  3. Redis客户端API操作 Jedis详解

    redis是一个著名的key-value存储系统,也是nosql中的最常见的一种.其实,个人认为,redis最强大的地方不在于其存储,而在于其强大的缓存作用. 我们可以把它想象成一个巨大的(多借点集群 ...

  4. Spring Boot 整合 Redis 实现缓存操作

    摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢!   『 产品没有价值,开发团队再优秀也无济于事 – <启示录> 』   本文提纲 ...

  5. 缓存数据库-redis数据类型和操作(list)

    转: 狼来的日子里! 奋发博取 缓存数据库-redis数据类型和操作(list) 一:Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部( ...

  6. redis键值操作

    1.1. redis键值操作 1.1.1. keys patten 查询相应的key 可以精确的查,也可以模糊的查 1.1.1.1. 通配符:* ? [] 在redis里,模糊查询key的时候有3个通 ...

  7. redis 批量删除操作

    redis 批量删除操作 需要在redis里面清空一批数据,redis没有支持通配符删除, 只有del key1 key2 ... 但是可以通配符获取 KEYS PATTERN 然后利用linux管道 ...

  8. thinkphp5.0上对redis的具体操作

    一.环境搭建 首先先安装composer.thinkphp5.0版本.和redis的windows版本的redis程序或者linux版本的redis程序,linux安装教程: https://www. ...

  9. redis连接数据库进行操作

    该项目需要的类目录 1.首先我们需要创建我们的实体类 2.放置我们的dao层,在里面写入方法 3.配置类Appconfig需要加入我们的JdbcTemplate方法,因为我们用的是spring,所以需 ...

随机推荐

  1. java util 下的concurrent包

    ------------------------------------------java util 下的concurrent包--------并发包--------------------.jav ...

  2. Maven打包含有Main方法jar并运行

    最近使用Kettle做定时数据抽取,因为Job更新或需求变更,修改Bug等种种原因,需要对重跑Job一般是针对每天的数据重跑一次.刚开始的做法是直接在自己的开发机器上重跑,这样速度比较慢,因为这时候你 ...

  3. .NET跨平台之旅:将示例站点升级至ASP.NET Core 1.0

    北京时间6月28日凌晨,微软发布了 .NET Core 1.0,详见新闻 .NET Core 1.0 正式发布了 ,ASP.NET Core 1.0 也随之一起发布了. 紧跟这次发布,我们将跑在 Li ...

  4. Workload Automation分析及其使用

    Workload Automation介绍 Workload Automation是提供一个在设备上运行各种workload的工具,使用Python编写.WA具有良好的框架结构,方便快捷的扩展.包含几 ...

  5. keras 中如何自定义损失函数

    http://lazycoderx.com/2016/10/09/keras%E4%BF%9D%E5%AD%98%E6%A8%A1%E5%9E%8B%E6%97%B6%E4%BD%BF%E7%94%A ...

  6. 格式化 float 类型,保留小数点后1位

    """  练习 :   小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,   并用字符串格式化显示出'xx.x%',只保留小数点后1位: &qu ...

  7. 【hihoCoder 1454】【hiho挑战赛25】【坑】Rikka with Tree II

    http://hihocoder.com/problemset/problem/1454 调了好长时间,谜之WA... 等我以后学好dp再来看为什么吧,先弃坑(╯‵□′)╯︵┻━┻ #include& ...

  8. FilenameFilter过滤文件名

    前言: 文件IO是程序设计语言的一个特点,本文将针对Java的File文件名过滤进行测试. 测试目录截图: 测试结果: data.txt output-.txt output-.txt output- ...

  9. NTFS交换数据流隐写的应用

    by Chesky ##目录 ####一.NTFS交换数据流(ADS)简介 ####二.ADS应用 写入隐藏文件(文本\图像\可执行文件) ADS在Windows平台下的利用--写入后门 ADS在We ...

  10. log4j分离日志输出 自定义过滤 自定义日志文件

    普通的log4j.properties 定义: ### set log levels ### log4j.rootLogger = debug,D,E ## Disable other log log ...