windows下安装使用Redis(windows 安装redis)
mhr18 2024-10-28 16:15 29 浏览 0 评论
1.redis介绍
Redis是一个Key-value存储系统。在学习慕课网java高并发秒杀的高并发优化是接触到redis,顺便记录学习过程。
2.redis安装
注:本文主要讲解在windows下安装
linux下安装
由于本人尚未学习linux,所以以后有机会可能会写,百度的意思是在linux环境下redis可以直接通过源码编译安装。
windows下安装
自行百度,google之。
参考:redis安装使用
3.启动redis
进入redis安装目录后,执行命令开启服务(可能会出现port占用情况)
1 | redis-server.exe redis.conf |
同样在redis的安装目录下,执行命令链接redis进行测试
1 | redis-cli |
通过info命令查看redis的运行情况
1 | info |
4.使用java访问本地redis做缓存
Jedis :http://www.oschina.net/p/jedis (Redis的官方首选Java开发包)
1 2 3 4 5 6 | <!--5:redis客户端:Jedis--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.3</version> </dependency> |
测试例子原帖:http://flychao88.iteye.com/blog/1527163
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | package com.lujianing.utils; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; /** * Created by lujianing on 14-2-28. */ public class JedisUtilTest { JedisPool pool; Jedis jedis; @Before public void setUp() { pool = new JedisPool(new JedisPoolConfig(), "192.168.10.61"); jedis = pool.getResource(); // jedis.auth("password"); } @Test public void testGet(){ System.out.println(jedis.get("lu")); } /** * Redis存储初级的字符串 * CRUD */ @Test public void testBasicString(){ //-----添加数据---------- jedis.set("name","minxr");//向key-->name中放入了value-->minxr System.out.println(jedis.get("name"));//执行结果:minxr //-----修改数据----------- //1、在原来基础上修改 jedis.append("name","jarorwar"); //很直观,类似map 将jarorwar append到已经有的value之后 System.out.println(jedis.get("name"));//执行结果:minxrjarorwar //2、直接覆盖原来的数据 jedis.set("name","闵晓荣"); System.out.println(jedis.get("name"));//执行结果:闵晓荣 //删除key对应的记录 jedis.del("name"); System.out.println(jedis.get("name"));//执行结果:null /** * mset相当于 * jedis.set("name","minxr"); * jedis.set("jarorwar","闵晓荣"); */ jedis.mset("name","minxr","jarorwar","闵晓荣"); System.out.println(jedis.mget("name","jarorwar")); } /** * jedis操作Map */ @Test public void testMap(){ Map<String,String> user=new HashMap<String,String>(); user.put("name","minxr"); user.put("pwd","password"); jedis.hmset("user",user); //取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List //第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数 List<String> rsmap = jedis.hmget("user", "name"); System.out.println(rsmap); //删除map中的某个键值 // jedis.hdel("user","pwd"); System.out.println(jedis.hmget("user", "pwd")); //因为删除了,所以返回的是null System.out.println(jedis.hlen("user")); //返回key为user的键中存放的值的个数1 System.out.println(jedis.exists("user"));//是否存在key为user的记录 返回true System.out.println(jedis.hkeys("user"));//返回map对象中的所有key [pwd, name] System.out.println(jedis.hvals("user"));//返回map对象中的所有value [minxr, password] Iterator<String> iter=jedis.hkeys("user").iterator(); while (iter.hasNext()){ String key = iter.next(); System.out.println(key+":"+jedis.hmget("user",key)); } } /** * jedis操作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,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有 System.out.println(jedis.lrange("java framework",0,-1)); } /** * jedis操作Set */ @Test public void testSet(){ //添加 jedis.sadd("sname","minxr"); jedis.sadd("sname","jarorwar"); jedis.sadd("sname","闵晓荣"); jedis.sadd("sanme","noname"); //移除noname jedis.srem("sname","noname"); System.out.println(jedis.smembers("sname"));//获取所有加入的value System.out.println(jedis.sismember("sname", "minxr"));//判断 minxr 是否是sname集合的元素 System.out.println(jedis.srandmember("sname")); System.out.println(jedis.scard("sname"));//返回集合的元素个数 } @Test public void test() throws InterruptedException { //keys中传入的可以用通配符 System.out.println(jedis.keys("*")); //返回当前库中所有的key [sose, sanme, name, jarorwar, foo, sname, java framework, user, braand] System.out.println(jedis.keys("*name"));//返回的sname [sname, name] System.out.println(jedis.del("sanmdde"));//删除key为sanmdde的对象 删除成功返回1 删除失败(或者不存在)返回 0 System.out.println(jedis.ttl("sname"));//返回给定key的有效时间,如果是-1则表示永远有效 jedis.setex("timekey", 10, "min");//通过此方法,可以指定key的存活(有效时间) 时间为秒 Thread.sleep(5000);//睡眠5秒后,剩余时间将为<=5 System.out.println(jedis.ttl("timekey")); //输出结果为5 jedis.setex("timekey", 1, "min"); //设为1后,下面再看剩余时间就是1了 System.out.println(jedis.ttl("timekey")); //输出结果为1 System.out.println(jedis.exists("key"));//检查key是否存在 System.out.println(jedis.rename("timekey","time")); System.out.println(jedis.get("timekey"));//因为移除,返回为null System.out.println(jedis.get("time")); //因为将timekey 重命名为time 所以可以取得值 min //jedis 排序 //注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的) jedis.del("a");//先清除数据,再加入数据进行测试 jedis.rpush("a", "1"); jedis.lpush("a","6"); jedis.lpush("a","3"); jedis.lpush("a","9"); System.out.println(jedis.lrange("a",0,-1));// [9, 3, 6, 1] System.out.println(jedis.sort("a")); //[1, 3, 6, 9] //输入排序后结果 System.out.println(jedis.lrange("a",0,-1)); } } |
Redis会定时 保存数据到硬盘上
在redis安装目录下,通过命令链接redis
1 | redis-cli |
然后通过命令查看redis存储大小
1 | dbsize |
通过
1 | keys * |
查看存储的键值
通过
1 | get 键:值 |
拿到存储的二进制数据。
相关推荐
- 如何检查 Linux 服务器是物理服务器还是虚拟服务器?
-
在企业级运维、故障排查和性能调优过程中,准确了解服务器的运行环境至关重要。无论是物理机还是虚拟机,都存在各自的优势与限制。在很多场景下,尤其是当你继承一台服务器而不清楚底层硬件细节时,如何快速辨识它是...
- 第四节 Windows 系统 Docker 安装全指南
-
一、Docker在Windows上的运行原理(一)架构限制说明Docker本质上依赖Linux内核特性(如Namespaces、Cgroups等),因此在Windows系统上无法直...
- C++ std:shared_ptr自定义allocator引入内存池
-
当C++项目里做了大量的动态内存分配与释放,可能会导致内存碎片,使系统性能降低。当动态内存分配的开销变得不容忽视时,一种解决办法是一次从操作系统分配一块大的静态内存作为内存池进行手动管理,堆对象内存分...
- Activiti 8.0.0 发布,业务流程管理与工作流系统
-
Activiti8.0.0现已发布。Activiti是一个业务流程管理(BPM)和工作流系统,适用于开发人员和系统管理员。其核心是超快速、稳定的BPMN2流程引擎。Activiti可以...
- MyBatis动态SQL的5种高级玩法,90%的人只用过3种
-
MyBatis动态SQL在日常开发中频繁使用,但大多数开发者仅掌握基础标签。本文将介绍五种高阶技巧,助你解锁更灵活的SQL控制能力。一、智能修剪(Trim标签)应用场景:动态处理字段更新,替代<...
- Springboot数据访问(整合Mybatis Plus)
-
Springboot整合MybatisPlus1、创建数据表2、引入maven依赖mybatis-plus-boot-starter主要引入这个依赖,其他相关的依赖在这里就不写了。3、项目结构目录h...
- 盘点金州勇士在奥克兰13年的13大球星 满满的全是...
-
见证了两个月前勇士与猛龙那个史诗般的系列赛后,甲骨文球馆正式成为了历史。那个大大的红色标志被一个字母一个字母地移除,在周四,一切都成为了过去式。然而这座,别名为“Roaracle”(译注:Roar怒吼...
- Mybatis入门看这一篇就够了(mybatis快速入门)
-
什么是MyBatisMyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为M...
- Springboot数据访问(整合druid数据源)
-
Springboot整合druid数据源基本概念SpringBoot默认的数据源是:2.0之前:org.apache.tomcat.jdbc.pool.DataSource2.0及之后:com.z...
- Linux 中的 "/etc/profile.d" 目录有什么作用 ?
-
什么是/etc/profile.d/目录?/etc/profile.d/目录是Linux系统不可或缺的一部分保留配置脚本。它与/etc/profile文件相关联,这是一个启动脚本,该脚...
- 企业数据库安全管理规范(企业数据库安全管理规范最新版)
-
1.目的为规范数据库系统安全使用活动,降低因使用不当而带来的安全风险,保障数据库系统及相关应用系统的安全,特制定本数据库安全管理规范。2.适用范围本规范中所定义的数据管理内容,特指存放在信息系统数据库...
- Oracle 伪列!这些隐藏用法你都知道吗?
-
在Oracle数据库中,有几位特殊的“成员”——伪列,它们虽然不是表中真实存在的物理列,但却能在数据查询、处理过程中发挥出意想不到的强大作用。今天给大家分享Oracle伪列的使用技巧,无论...
- Oracle 高效处理数据的隐藏神器:临时表妙用
-
各位数据库搬砖人,在Oracle的代码世界里闯荡,处理复杂业务时,是不是总被数据“搅得头大”?今天给大家安利一个超实用的隐藏神器——临时表!当你需要临时存储中间计算结果,又不想污染正式数据表...
- Oracle 数据库查询:多表查询(oracle多表关联查询)
-
一、多表查询基础1.JOIN操作-INNERJOIN:返回两个表中满足连接条件的匹配行,不保留未匹配数据。SELECTa.emp_id,b.dept_nameFROMempl...
- 一文掌握怎么利用Shell+Python实现多数据源的异地备份程序
-
简介:在信息化时代,数据安全和业务连续性已成为企业和个人用户关注的焦点。无论是网站数据、数据库、日志文件,还是用户上传的文档、图片等,数据一旦丢失,损失难以估量。尤其是当数据分布在多个不同的目录、服务...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 如何检查 Linux 服务器是物理服务器还是虚拟服务器?
- 第四节 Windows 系统 Docker 安装全指南
- C++ std:shared_ptr自定义allocator引入内存池
- Activiti 8.0.0 发布,业务流程管理与工作流系统
- MyBatis动态SQL的5种高级玩法,90%的人只用过3种
- Springboot数据访问(整合Mybatis Plus)
- 盘点金州勇士在奥克兰13年的13大球星 满满的全是...
- Mybatis入门看这一篇就够了(mybatis快速入门)
- Springboot数据访问(整合druid数据源)
- Linux 中的 "/etc/profile.d" 目录有什么作用 ?
- 标签列表
-
- oracle位图索引 (74)
- oracle基目录 (50)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (53)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)