您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 巴音郭楞蒙古分类信息网,免费分类信息发布

Java使用Redis初探

2024/3/16 15:44:46发布15次查看
redis的相关概念不做介绍了,大家也可以先了解下memcached,然后比较下二者的区别,就会有个整体的印象。 服务器端通常选择linux , redis对于linux是官方支持的,使用资料很多,需要下载相关服务器端程序 ,然后解压安装。因为能力和条件有限,我只简单介绍下
redis的相关概念不做介绍了,大家也可以先了解下memcached,然后比较下二者的区别,就会有个整体的印象。
服务器端通常选择linux , redis对于linux是官方支持的,使用资料很多,需要下载相关服务器端程序 ,然后解压安装。因为能力和条件有限,我只简单介绍下windows上如何安装和使用,有兴趣的可以娱乐一下。
服务器端程序下载地址:https://github.com/servicestack/redis-windows.git
如果不好操作的话到这来:http://download.csdn.net/detail/u013283727/8212831 下载完后使用cmd进入下载文件的目录中,尝试以下操作:
microsoft windows [version 6.1.7601]copyright (c) 2009 microsoft corporation. all rights reserved.c:\>cd redis64-latestc:\redis64-latest>redis-server redis.windows.conf --maxmemory 200m _._ _.-``__ ''-._ _.-`` `. `_. ''-._ redis 2.8.17 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) running in stand alone mode |`-._`-...-` __...-.``-._|'` _.-'| port: 6379 | `-._ `._ / _.-' | pid: 4552 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-'[4552] 01 dec 13:38:53.147 # server started, redis version 2.8.17[4552] 01 dec 13:38:53.147 * db loaded from disk: 0.000 seconds[4552] 01 dec 13:38:53.147 * the server is now ready to accept connections on port 6379
客户端使用java程序来连接,在这里介绍两种常用的方法
(jar包直接找maven要:http://www.mvnrepository.com 一搜就出来了)
1.redisson
/** * @author fcs * redisson example */public class redissontest { public static void main(string[] args) { //1.初始化 config config = new config(); config.setconnectionpoolsize(10); config.addaddress(127.0.0.1:6379); redisson redisson = redisson.create(config); system.out.println(redis连接接成功。。。。。); //2.测试concurrentmap,put时候就会同步到redis中 concurrentmap map = redisson.getmap(firstmap); map.put(changshengfeng, 男); map.put(yongtaoliu, 男); map.put(qiaozhu, 女); concurrentmap resultmap = redisson.getmap(firstmap); system.out.println(resultmap == +resultmap.keyset()); //关闭连接 redisson.shutdown(); }}
2.jedis
/** * @author fcs * test about jedis * dec 1, 2014 */public class jedistest { private static jedis jedis; @before public void setup(){ jedis = new jedis(127.0.0.1, 6379); system.out.println(redis服务器已连接....);// jedis.auth(admin); //权限验证 } /** * redis 存储字符串 */ @test public void teststring(){ //添加数据 jedis.set(name, fcs); system.out.println(jedis.get(name));//获取结果 jedis.append(name, is handsome);//拼接 jedis.del(name);//删除某个键 system.out.println(jedis.get(name)); jedis.mset(name,changsheng,age,22,qq,646653132);//设置多个键值对 jedis.incr(age);//加1操作 在投票中可能用的上 system.out.println(jedis.get(name)+--+jedis.get(age)+--+jedis.get(qq)); } /** * 操作list */ @test public void testlist(){ jedis.del(java framework); system.out.println(jedis.lrange(java framework, 0, -1)); //先向key java framework存放三条数据 jedis.lpush(java framework, spring); jedis.lpush(java framework, struts); jedis.lpush(java framework, hibernate); //再取出所有数据jedis.lrange是按范围取出 第一个是key 第二个是其实位置 第三个是结束位置 system.out.println(jedis.lrange(java framework, 0, -1)); jedis.del(java framework); jedis.rpush(java framework, spring); jedis.rpush(java framework, struts); jedis.rpush(java framework, hibernate); //再取出所有数据jedis.lrange是按范围取出 第一个是key 第二个是其实位置 第三个是结束位置 system.out.println(jedis.lrange(java framework, 0, -1)); } /** * 操作set */ @test public void testset(){ jedis.sadd(haha, why); jedis.sadd(haha, you); jedis.sadd(haha, so); jedis.sadd(haha, diao); jedis.sadd(haha, ?); //移除 jedis.srem(haha, ?); system.out.println(判断?是不是haha集合的元素:+jedis.sismember(haha, ?)); system.out.println(获取所有加入的value:+jedis.smembers(haha)); system.out.println(返回给定集合名的一个随机的value:+jedis.srandmember(haha)); system.out.println(返回集合的元素个数:+jedis.scard(haha)); } /** * redis 操作map */ @test public void testmap(){ map map = new hashmap(); map.put(name, 小露); map.put(sex, 男); map.put(email, haha@fcs.com); jedis.hmset(user, map);//相当于给map再取一个名字 list rsmap = jedis.hmget(user, name,sex);//后面是一个可变参数列表 去某个map中的一些key代表的值 system.out.println(rsmap); //删除map中的某个键值 jedis.hdel(user, email); system.out.println(删除后----email+jedis.hmget(user, email)); system.out.println(是否存在key为user的记录:+jedis.exists(user)); system.out.println(key为user的map中存放的值的个数:+jedis.hlen(user)); system.out.println(返回map对象中所有的key:+jedis.hkeys(user)); system.out.println(返回map对象中所有的value:+jedis.hvals(user)); //使用迭代器 iterator iter = jedis.hkeys(user).iterator(); system.out.println(***************使用迭代器***************); while(iter.hasnext()){ string key = iter.next();//每次向后越过一个对象 system.out.println(key+:+jedis.hmget(user, key));//迭代key 根据key再取值value } } /** * 这里在前面执行完之后直接再去拿值 试试这些进驻内存的数据是否还在 * 可以把服务器端关掉再重启 再直接运行这个方法看看 * 如果还有数据就说明该数据库自动完成了持久化 它有默认的持久化机制 */ @test public void testnoset(){ iterator iter = jedis.hkeys(user).iterator(); system.out.println(***************使用迭代器***************); while(iter.hasnext()){ string key = iter.next();//每次向后越过一个对象 system.out.println(key+:+jedis.hmget(user, key));//迭代key 根据key再取值value } }// @afterclass 测试整个类时可以用 会关闭服务器端程序// public static void close(){// jedis.shutdown();//不能用@after 不然每次执行完一个方法都会关闭服务器// system.out.println(连接已关闭.....);// } }
这时候可以看到cmd中有一些日志记录:(这就是它默认的持久化机制,可以在redis.windows.conf配置文件中查看)
[3972] 01 dec 13:59:04.073 * 1 changes in 900 seconds. saving...[3972] 01 dec 13:59:04.229 # fork operation complete[3972] 01 dec 13:59:04.229 * background saving terminated with success[3972] 01 dec 14:20:05.127 * 1 changes in 900 seconds. saving...[3972] 01 dec 14:20:05.267 # fork operation complete[3972] 01 dec 14:20:05.267 * background saving terminated with success[3972] 01 dec 14:35:06.074 * 1 changes in 900 seconds. saving...[3972] 01 dec 14:35:06.204 # fork operation complete[3972] 01 dec 14:35:06.224 * background saving terminated with success
哎,先到这吧。。。。
巴音郭楞蒙古分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录