redis的一些操作
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的一些操作的更多相关文章
- python之redis和memcache操作
Redis 教程 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据 ...
- redis的hash操作在集中式session中的应用
在集群部署时,为了高可用性的目的,往往把session进行共享,共享分为两种:session复制和集中式管理. redis在session集中式管理中可以起到比较大的作用. 制约session集中式共 ...
- Redis客户端API操作 Jedis详解
redis是一个著名的key-value存储系统,也是nosql中的最常见的一种.其实,个人认为,redis最强大的地方不在于其存储,而在于其强大的缓存作用. 我们可以把它想象成一个巨大的(多借点集群 ...
- Spring Boot 整合 Redis 实现缓存操作
摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 产品没有价值,开发团队再优秀也无济于事 – <启示录> 』 本文提纲 ...
- 缓存数据库-redis数据类型和操作(list)
转: 狼来的日子里! 奋发博取 缓存数据库-redis数据类型和操作(list) 一:Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部( ...
- redis键值操作
1.1. redis键值操作 1.1.1. keys patten 查询相应的key 可以精确的查,也可以模糊的查 1.1.1.1. 通配符:* ? [] 在redis里,模糊查询key的时候有3个通 ...
- redis 批量删除操作
redis 批量删除操作 需要在redis里面清空一批数据,redis没有支持通配符删除, 只有del key1 key2 ... 但是可以通配符获取 KEYS PATTERN 然后利用linux管道 ...
- thinkphp5.0上对redis的具体操作
一.环境搭建 首先先安装composer.thinkphp5.0版本.和redis的windows版本的redis程序或者linux版本的redis程序,linux安装教程: https://www. ...
- redis连接数据库进行操作
该项目需要的类目录 1.首先我们需要创建我们的实体类 2.放置我们的dao层,在里面写入方法 3.配置类Appconfig需要加入我们的JdbcTemplate方法,因为我们用的是spring,所以需 ...
随机推荐
- redis3.0配置文件详解
redis.conf #redis.conf # Redis configuration file example. # ./redis-server /path/to/redis.conf #### ...
- font-size 兼容问题
早年~ 楔子 在为“我的抵扣券”添加 按钮时,为了将文字隐掉,给节点设置了“font-size:0;”,设置后刷一下浏览器,webkit下按钮掉下去了,而其他浏览器(包括IE6/7)都正常: 按理说 ...
- LZ77压缩算法编码原理详解(结合图片和简单代码)
前言 LZ77算法是无损压缩算法,由以色列人Abraham Lempel发表于1977年.LZ77是典型的基于字典的压缩算法,现在很多压缩技术都是基于LZ77.鉴于其在数据压缩领域的地位,本文将结合图 ...
- [LeetCode] Split Array Largest Sum 分割数组的最大值
Given an array which consists of non-negative integers and an integer m, you can split the array int ...
- 【三石jQuery视频教程】01.图片循环展示
视频地址:http://v.qq.com/page/e/5/t/e0149n5he5t.html 大家好,欢迎来到[三石jQuery视频教程],我是您的老朋友 - 三生石上. 今天,我们要通过基本的H ...
- javascript正则表达式(RegExp)简述
首先我们来思考以下两个个场景 我们使用window操作系统,有时候需要找一个文件,刚刚好这个文件我不知道放哪里去了,这个时候我们该怎么办呢? 我们使用word写论文的时候,不小心将"订价&q ...
- chrome 更新flash插件
下载下面的插件并安装 https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/install_flash_player ...
- Rabin-Karp指纹字符串查找算法
首先计算模式字符串的散列函数, 如果找到一个和模式字符串散列值相同的子字符串, 那么继续验证两者是否匹配. 这个过程等价于将模式保存在一个散列表中, 然后在文本中的所有子字符串查找. 但不需要为散列表 ...
- poj2217
Secretary Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1257 Accepted: 515 Descript ...
- Markdown
1. 斜体和粗体 代码: *斜体*或_斜体_ **粗体** ***加粗斜体*** ~~删除线~~ 显示效果: 这是一段斜体 这是一段粗体 这是一段加粗斜体 这是一段删除线 2. 分级标题 第一种写法: ...