Windows下Redis的安装使用[转]
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从...
0.前言
因为是初次使用,所以是在windows下进行安装和使用,参考了几篇博客,下面整理一下
1.安装Redis
官方网站:http://redis.io/
官方下载:http://redis.io/download 可以根据需要下载不同版本
windows版:https://github.com/MSOpenTech/redis
github的资源可以ZIP直接下载的(这个是给不知道的同学友情提示下)
下载完成后 可以右键解压到 某个硬盘下 比如D:\Redis\redis-2.6
在D:\Redis\redis-2.6\bin\release下 有两个zip包 一个32位一个64位
根据自己windows的位数 解压到D:\Redis\redis-2.6 根目录下
2.启动Redis
进入redis目录后 开启服务 (注意加上redis.conf)
1
|
redis-server.exe redis.conf |
这个窗口要保持开启 关闭时redis服务会自动关闭
redis会自动保存数据到硬盘 所以图中是我第二次开启时 多了一个 DB loaded from disk
3.测试使用
另外开启一个命令行窗口 进入redis目录下 (注意修改自己的ip)
1
|
redis-cli.exe -h 192.168.10.61 -p 6379 |
4.Java开发包Jedis
Jedis :http://www.oschina.net/p/jedis (Redis的官方首选Java开发包)
1
2
3
4
5
6
7
8
|
<!--Redis --> < dependency > < groupId >redis.clients</ groupId > < artifactId >jedis</ artifactId > < version >2.0.0</ version > < type >jar</ type > < scope >compile</ scope > </ 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会定时 保存数据到硬盘上
Windows下Redis的安装使用[转]的更多相关文章
- Windows下Redis的安装使用
摘要 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted ...
- windows下redis服务安装
1.redis简介redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(so ...
- windows下Redis的安装配置以及注意事项
一.下载windows版本的Redis 去官网找了很久,发现原来在官网上可以下载的windows版本的,现在官网以及没有下载地址,只能在github上下载,官网只提供linux版本的下载 官网下载地址 ...
- windows下Redis的安装和使用
1.要安装Redis,首先要获取安装包.Windows的Redis安装包需要到以下GitHub链接找到.链接:https://github.com/MSOpenTech/redis.打开网站后,找到R ...
- Windows下redis的安装与使用
Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...
- Redis(三):windows下Redis的安装配置以及注意事项
一.下载windows版本的Redis 去官网找了很久,发现原来在官网上可以下载的windows版本的,现在官网以及没有下载地址,只能在github上下载,官网只提供linux版本的下载 官网下载地址 ...
- Redis学习笔记(一)Windows下redis的安装和启动
在Windows上安装redis 下载地址:https://github.com/microsoftarchive/redis/releases 选择图中红框标出来的下载,解压到磁盘上,文件夹命名为r ...
- redis学习笔记(一)——windows下redis的安装与配置
前言 很久没有写东西了(.......我的水平就是记个笔记),北漂实习的我,每天晚上回来都不想动,但是做为社会主义接班人的我,还是要时刻给自己充充电,趁着年轻,趁着日渐脱发的脑袋还没有成为" ...
- Linux、Windows下Redis的安装即Redis的基本使用详解
前言 什么是Redis Redis是一个基于内存的key-value结构数据库.Redis 是互联网技术领域使用最为广泛的存储中间件,它是「Remote Dictionary Service」的首字母 ...
随机推荐
- 贴板子系列_1-exgcd
exgcd ll exgcd(ll a,ll b,ll &x,ll &y) { ) { x=;y=;return a; } ll r=exgcd(b,a%b,x,y); ll t=x; ...
- Memcached(三)Memcached配置参数初解
一.基本参数在我们第一次安装Memcached时,一般都是用过这个命令: memcached -m 512 -u root -d -l 127.0.0.1 -p 11211 我们先来解释这几个参数的含 ...
- caffe之(一)卷积层
在caffe中,网络的结构由prototxt文件中给出,由一些列的Layer(层)组成,常用的层如:数据加载层.卷积操作层.pooling层.非线性变换层.内积运算层.归一化层.损失计算层等:本篇主要 ...
- Codeforces Round #316 div2
一场充满血腥hack之战!!! Problem_A: 题意: n个候选人在m个城市进行投票,每个城市选出票数最多的一个候选人为城市候选人,如果票数相同,则取编号小的候选人. 再从这m个城市候选人中选出 ...
- bzoj 3065: 带插入区间K小值 替罪羊树 && AC300
3065: 带插入区间K小值 Time Limit: 60 Sec Memory Limit: 512 MBSubmit: 1062 Solved: 253[Submit][Status] Des ...
- 【转载】JavaEE权限管理分析
JavaEE权限管理分析 一.背景 在 Web 应用开发中,安全一直是非常重要的一个方面.安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来.如果在应用开发的后期才考虑安全的问题,就可 ...
- Java线程监听,意外退出线程后自动重启
Java线程监听,意外退出线程后自动重启 某日,天朗气清,回公司,未到9点,刷微博,顿觉问题泛滥,惊恐万分! 前一天写了一个微博爬行程序,主要工作原理就是每隔2分钟爬行一次微博,获取某N个关注朋友微博 ...
- Hibernate 注解 动态插入( DynamicInsert) 动态更新(DynamicUpdate)
@DynamicUpdate(value = true)@DynamicInsert(value = true) 这两个注解默认是false,经试验,如果使用了这两个注解,在一定程度上是可以提高插入和 ...
- 【网络流24题】 No.6 最长不减子序列问题 (最大流)[模型:最多不相交路径]
[题意] 给定正整数序列x1 ,x2 , x3... ( 1)计算其最长不减子序列的长度 s.( 2)计算从给定的序列中最多可取出多少个长度为 s 的不减子序列.( 3) 如果允许在取出的序列中多次使 ...
- TDBGrideh表头自动排序设置
自动显示标题行的升降排序标志符(▽降序△升序)并做相应排序DBGridEh组件可以在标题行单元格中显示小三角形升.降排序标志符图片,在运行时可点击标题行,图片自动切换并做相应排序. 具体属性设置如下: ...