启动redis本地服务
来源:互联网 发布:360手机数据恢复 编辑:程序博客网 时间:2024/05/22 15:39
首先是安装环境
windows版redis:https://github.com/MSOpenTech/redis/releases
linux版redis:http://redis.io/download
我的电脑是windows版本接下来windows为例,现在我们的环境安装好了,接下来是要启动redis服务,启动要在两个dos界面输入命令,为了方便我将这两条命令做成批处理,
start redis-server.exeredis.windows.conf
start redis-cli.exe -h 127.0.0.1 -p 6379
将这两句话写入txt文件保存后,将文件后缀改为bat就可以直接启动(这个文件要放在下载回来的redis文件下)
前期准备工作已经完成,接下来可以了解redis是个什么东西了。简单的来说redis是一个分布式的(string,object)的一个map,可以用于信息之间的传递。下面是java和redis的使用。
public class RedisJava { public static void main(String[] args) { //连接本地redis服务(本地服务要先开呀) Jedis jedis=new Jedis("localhost"); System.out.println("连接成功"); //查看服务网是否运行 System.out.println("服务正在运行:"+jedis.ping());// RedisJava.operationList(jedis);// System.out.println(jedis.get("n1")); } public static void operationString(Jedis jedis){ jedis.set("key", "value");//添加数据 jedis.append("key", "s");//追加数据 System.out.println(jedis.get("key")); jedis.del("key");//删除数据 System.out.println(jedis.get("key")); //设置多个键值对 jedis.mset("name","liangjianyaun","age","23","qq","476777XXX"); System.out.println(jedis.get("name")); } public static void operationMap(Jedis jedis){ //-----添加数据---------- Map<String, String> map = new HashMap<String, String>(); map.put("name", "liangjianyuan"); map.put("age", "23"); map.put("qq", "123456"); jedis.hmset("user",map); List<String> rsmap = jedis.hmget("user", "name", "age", "qq"); System.out.println(rsmap); //删除某一个键值 jedis.hdel("user", "qq"); System.out.println(jedis.hmget("user", "qq")); System.out.println(jedis.hlen("user"));//key的个数 System.out.println(jedis.hkeys("user"));//返回所有的key值 System.out.println(jedis.hexists("user", "qq"));//判断是否有这个key System.out.println(jedis.hvals("user")); Iterator<String> iter=jedis.hkeys("user").iterator(); while (iter.hasNext()){ String key = iter.next(); System.out.println(key+":"+jedis.hmget("user",key)); } } public static void operationList(Jedis jedis){ //开始前,先移除所有的内容 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,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有 System.out.println(jedis.lrange("java framework",0,-1)); jedis.del("java framework"); //方向右 jedis.rpush("java framework","hibernate"); jedis.rpush("java framework","struts"); jedis.rpush("java framework","spring"); System.out.println(jedis.lrange("java framework",0,-1)); }}
为了方便对象的使用和减小new对象的开销,redis也有池的使用
public class JedisUtil {// private static String ADDR="127.0.0.1"; //连接主机ip private static int PORT=6379;//端口 private static int MAX_ACTIVE=1024;//最大连接数 private static int MAX_IDLE=200;//最大空闲数 private static int MAX_WAIT=10000;//连接等待时间 private static boolean TEST_ON_BORROW=true;//在获取连接的时候检查有效性 private static JedisPool jedisPool=null; private static void initialPool(){ JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(MAX_ACTIVE);//最大连接数 config.setMaxIdle(MAX_IDLE);//最大空闲 config.setMaxWaitMillis(MAX_WAIT);//等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException; config.setTestOnBorrow(TEST_ON_BORROW);//在获取连接的时候检查有效性, 默认false jedisPool=new JedisPool(config, ADDR, PORT); } public synchronized static Jedis getJedis(){ if(null==jedisPool){ initialPool(); } Jedis jedis=jedisPool.getResource();//获取实例 return jedis; } public static void closeJedis(Jedis jedis) { if ((null != jedis) && (null != jedisPool )) jedisPool.returnResource(jedis); }}
有关于redis订阅与发布的方面的内容,redis采用的pub/sub的方式来实现
广播类
public class TestPublist { public static void main(String[] args) { try { Jedis jedis=new Jedis("localhost"); jedis.publish("redisChatTest", "恐怖广播"); jedis.publish("redisChatTest", "我没有名字,因为名字在这里没有意义"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
订阅类
public class TestSubscribe {public static void main(String[] args) { Jedis jedis=new Jedis("localhost"); //重写onMessage方法就可以接收到发布的信息 System.out.println("开始监听"); JedisPubSub jedisPubSub=new JedisPubSub() { public void onMessage(String channel, String message) { //channel监听器名字 消息 System.out.println("channel:" + channel + " receives message :" + message);// this.unsubscribe();//监听一回结束监听 } }; jedis.subscribe(jedisPubSub, "redisChatTest"); System.out.println("监听结束。。。。");}}
最后来一起看看redis有关于同步方面的demo
、“`
public class RedisTransactions {
public static void main(String[] args) {
//有关于redis事务使用
RedisTransactions.test1Normal();
RedisTransactions.test2Trans();
}
//普通方法同步public static void test1Normal(){ Jedis jedis=new Jedis("localhost"); long start = System.currentTimeMillis(); for(int i=0;i<100000;i++){ String result=jedis.set("n"+i,"n"+i);//成功返回OK } long end = System.currentTimeMillis(); System.out.println("Simple SET: " + ((end - start)/1000.0) + " seconds"); jedis.disconnect();}//事务public static void test2Trans(){ Jedis jedis=new Jedis("localhost"); long start=System.currentTimeMillis(); Transaction tx=jedis.multi(); for(int i=0;i<100000;i++){ tx.set("t"+i,"t"+i); } List<Object>results=tx.exec(); long end = System.currentTimeMillis(); System.out.println("Transaction SET: " + ((end - start)/1000.0) + " seconds"); jedis.disconnect();}//管道public void test3Pipelined() { Jedis jedis = new Jedis("localhost"); Pipeline pipeline = jedis.pipelined(); long start = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { pipeline.set("p" + i, "p" + i); } List<Object> results = pipeline.syncAndReturnAll(); long end = System.currentTimeMillis(); System.out.println("Pipelined SET: " + ((end - start)/1000.0) + " seconds"); jedis.disconnect(); }
}
“`
- 启动redis本地服务
- windows版redis报错:本地计算机上的Redis服务启动后停止
- windows版redis报错:本地计算机上的Redis服务启动后停止
- windows版redis报错:本地计算机上的Redis服务启动后停止
- 本地启动mysql服务
- 启动本地mysql服务
- redis设置启动服务
- redis 启动服务
- redis服务启动
- bat启动oracle本地服务
- 本地Mysql服务无法启动
- redis服务启动和停止
- redis服务启动和停止
- redis服务启动、停止命令
- redis windows 服务 启动脚本
- 安装并启动redis服务
- 本地Jedis链接远程的Redis服务
- 在 本地计算机 无法启动 OracleOraHome90ManagementServer 服务
- Spring security注销登录
- inline函数的一些总结
- txt保存的样本转为矩阵
- ajax例子
- 344. Reverse String
- 启动redis本地服务
- 【Android前端】Bing每日图片列表应用制作记录——2.列表的实现
- 【欧拉计划 P4】Largest palindrome product 最大的回文数
- Java基础----字节流
- 十个JDBC的最佳实践
- CSU1215
- 读《程序员》2017年5期
- SFTPUtils工具类及使用
- Linux系统自己用到的一些基本命令总结(一)