redis |

如何使用redis缓存实现分页

解决思路用hset和hget进行每个对象的存取,用zadd和zrange存取条件索引(可以通过控制后面offset值进行分页查询),然后根据zrange获取到的key值再去用hget循环遍历获取对象add到返回的集合当中。 简单实验但是为了实现根据条件查询,需要在存取对象前对某个条件做索引,下面举个例子。 现在有4个用户,分别是: zhangsan,lisi,wangwu,zhaoliu。其中zhangsan和wangwu是货主,userType值为0,其余2个是司机,u ...

Kevin Lim
others |

Maven构建多环境发布

web项目在不同运行环境下如本地测试、线上测试、生产环境多个环境的资源配置文件各不相同,以项目为例,资源文件结构如下图: 在maven构建之前,每次部署完成之后都需要手动修改配置文件,这样极为不便,下面介绍通过maven构建多环境下的打包方法。 1.首先资源文件配置如上图所示,划分不同环境的资源文件目录。2.增加web模块的pom文件配置: <profiles> <profile> <id>local</i ...

Kevin Lim
java |

GeoHash的简单使用例子

以前开发一个项目有这样一个需求,货主找附件的车,原来是通过使经纬度进行匹配的,因为经纬度是2个字段,所以匹配起来性能比较低,有一个geohash算法可以将二维的经纬度匹配转为一维的匹配,降低查询效率.详细了解请参见相关博文 背景网上百度的geohash java版的代码发现计算并不准确于是去maven库查询了一下发现有对应的jar包,而且写的比较详细。对应pom文件 <dependency> <groupId>ch.hsr</groupId& ...

Kevin Lim
redis |

redis下sentinel实验

很早以前在2台阿里云服务器上把redis主备给搭好了,但是一直纠结的是阿里云好像不支持vip,没办法做主从切换,万一主服务器崩了就完蛋咯.先不考虑服务器端环境,学习一下redis自身关于HA(hign available)的实现–sentinel.下面开始做实验看看它的实际效果. 一.配置master和slave(为了方便,所有操作均在一台电脑上,通过改变端口号去模拟多台服务器)1.用mkdir testRedis指令建一个测试目录 2.将redis-2.8.19拷贝到 ...

Kevin Lim
redis |

redis用scan进行数据的迭代遍历

在redis中是支持使用通配符的使用,例如‘?’或是‘’所以我们在获取redis里面的某个db里面的所有数据可以用 `keys `这样的指令来实现。但是存在一个问题就是这样做的话,在数据量很大的情况下效率是很不理想的。redis的作者在一篇博文中也提到这一点。 Your collection is very small? Fine, use SMEMBERS and you get Redis-alike performances anyway. Your collecti ...

Kevin Lim
java |

java设计模式之singleton

最近在看2年前买的effective java,说起来也是挺惭愧的,希望这次能静下心来 什么是singletonsingleton即我们经常说的单例模式,所谓单例就是只有一个实例,指仅仅被实例化一次的类。通常被用来代表那些本质上唯一的系统组件,比如窗口管理器或者文件系统。最近在学redis,就把产生jedis的pool写成一个单例模式。package utils; import redis.clients.jedis.JedisPool; import redis.clie ...

Kevin Lim
ubuntu |

ubuntu下sublime中文解决办法

我的系统版本ubuntu12.04老实说,作为linux刚入门的菜鸟真的经不起折腾,问题总是接连不断的出现也是醉了。 从头开始记录一下吧 下载安装配置sublimesublime下载地址 下载下来后,发现后缀名不是gz的,tar zvxf解压不了。。网上说用tar vxf可以解压,具体我也没试,直接双击解压了。 解压后,文件夹名称带空格的,重命名一下,不然会影响到后面的步骤。重命名指令 mv Sublime Text 2 sublimeText2 然后打开文件夹找到一个可执行 ...

Kevin Lim