1、命令行工具
在windows上巧命令行指令,实在是令人痛苦,本人实在是受不了windows下cmd的笨,powershell的蠢,只能换一个了。
介绍一款cmd工具cmder(github上开源),地址:http://bliker.github.io/cmder/,如下图,若有更好的工具,请大家告诉一下我,在此,先谢谢。
注:"λ"为cmder工具的标识,后边指令凡是遇到这个字符,都可以跳过
2、官方下载redis
地址:http://redis.io/download 我下载的是稳定版2.8.19。下载后,解压下载包到本地目录,如D:\Programs\redis-2.8.19
3、启动数据库服务。
命令:
redis-server.exe redis.windows.conf
4、测试数据库,
下边我们分别创建string,list,hash,至于更高级的,大家自己再深入学习吧
注意:
redis指令以回车作为结束标识,所以后边不能加标点符号,否则会报错,或者执行错误的指令(即把分号当成指令的一部分)
canssdra指令将分号作为指令结束标识,所以后边必须加分号“;”,否则认为该指令没有结束。
λ redis-cli.exe -h 127.0.0.1 -p 6379 127.0.0.1:6379> keys *; (empty list or set) 127.0.0.1:6379> set name ‘zxh‘; Invalid argument(s) 127.0.0.1:6379> set name ‘zxh‘ OK
4.1 string
C:\Users\zxh λ cd D:\Programs\redis-2.8.19 C:\Users\zxh λ d: D:\Programs\redis-2.8.19 λ redis-cli.exe -h 127.0.0.1 -p 6379 127.0.0.1:6379> KEYS *o* (empty list or set) 127.0.0.1:6379> set username ‘zxh‘ OK 127.0.0.1:6379> get username "zxh" 127.0.0.1:6379>
4.2 list
127.0.0.1:6379> rpush friends ‘zhangsan‘ (integer) 1 127.0.0.1:6379> rpush friends ‘lisi‘ (integer) 2 127.0.0.1:6379> rpush friends ‘wangwu‘ (integer) 3 127.0.0.1:6379> lrange friends 0 -1 1) "zhangsan" 2) "lisi" 3) "wangwu" 127.0.0.1:6379>
4.3 hash
127.0.0.1:6379> hset companyaddress province bj (integer) 1 127.0.0.1:6379> hset companyaddress area haidianqu (integer) 1 127.0.0.1:6379> hset companyaddress detail zhongguancun (integer) 1 127.0.0.1:6379> hgetall companyaddress 1) "province" 2) "bj" 3) "area" 4) "haidianqu" 5) "detail" 6) "zhongguancun"
5、下载Client jar
注意,这里和cassandra不同,没有使用jdbc驱动,原因,官方不建议使用,而且,jdbc驱动有一些问题,如,新版redis使用jdbc驱动存数据,写入数据库的是数据的长度 ,而非数据真实值。
cliendt jar包,我们选择jedis,位置 branches\mvn-repo\redis\clients\jedis\2.2.0\jedis-2.2.0.jar
或者直接从这里下载 http://files.cnblogs.com/piaolingzxh/jedis-2.2.0.jar.zip(下载后直接去掉后缀名.zip就可以了)
6、使用java连接redis
记得引用上边的jar包,以下是主要java代码片段
Jedis redis = new Jedis("localhost", 6379);// 连接redis // String redis.append("user", "piaolingzxh"); // List redis.lpush("edu", "xiaoxue", "chuzhong", "gaozhong"); // hash key field value redis.hset("home_address", "province", "henan"); redis.hset("home_address", "city", "sanmenxia"); redis.hset("home_address", "detail", "what a u doing?"); List list = redis.hmget("home_address", "province", "city", "detail"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } System.out.println("OK");
到数据库中查看结果
C:\Users\zxh λ cd D:\Programs\redis-2.8.19 C:\Users\zxh λ d: D:\Programs\redis-2.8.19 λ redis-cli.exe -h 127.0.0.1 -p 6379 127.0.0.1:6379> KEYS *o* (empty list or set) 127.0.0.1:6379> keys * 1) "home_address" 2) "edu" 3) "user" 127.0.0.1:6379> get user "piaolingzxh" 127.0.0.1:6379> lrange edu 0 -1 1) "gaozhong" 2) "chuzhong" 3) "xiaoxue" 127.0.0.1:6379> hgetall home_address 1) "province" 2) "henan" 3) "city" 4) "sanmenxia" 5) "detail" 6) "what a u doing?"
7:Scala 连接 redis
8:附redis指令集
连接操作相关的命令 quit:关闭连接(connection) auth:简单密码认证 持久化 save:将数据同步保存到磁盘 bgsave:将数据异步保存到磁盘 lastsave:返回上次成功将数据保存到磁盘的Unix时戳 shundown:将数据同步保存到磁盘,然后关闭服务 远程服务控制 info:提供服务器的信息和统计 monitor:实时转储收到的请求 slaveof:改变复制策略设置 config:在运行时配置Redis服务器 对value操作的命令 exists(key):确认一个key是否存在 del(key):删除一个key type(key):返回值的类型 keys(pattern):返回满足给定pattern的所有key randomkey:随机返回key空间的一个 keyrename(oldname, newname):重命名key dbsize:返回当前数据库中key的数目 expire:设定一个key的活动时间(s) ttl:获得一个key的活动时间 select(index):按索引查询 move(key, dbindex):移动当前数据库中的key到dbindex数据库 flushdb:删除当前选择数据库中的所有key flushall:删除所有数据库中的所有key 对String操作的命令 set(key, value):给数据库中名称为key的string赋予值value get(key):返回数据库中名称为key的string的value getset(key, value):给名称为key的string赋予上一次的value mget(key1, key2,…, key N):返回库中多个string的value setnx(key, value):添加string,名称为key,值为value setex(key, time, value):向库中添加string,设定过期时间time mset(key N, value N):批量设置多个string的值 msetnx(key N, value N):如果所有名称为key i的string都不存在 incr(key):名称为key的string增1操作 incrby(key, integer):名称为key的string增加integer decr(key):名称为key的string减1操作 decrby(key, integer):名称为key的string减少integer append(key, value):名称为key的string的值附加value substr(key, start, end):返回名称为key的string的value的子串 对List操作的命令 rpush(key, value):在名称为key的list尾添加一个值为value的元素 lpush(key, value):在名称为key的list头添加一个值为value的 元素 llen(key):返回名称为key的list的长度 lrange(key, start, end):返回名称为key的list中start至end之间的元素 ltrim(key, start, end):截取名称为key的list lindex(key, index):返回名称为key的list中index位置的元素 lset(key, index, value):给名称为key的list中index位置的元素赋值 lrem(key, count, value):删除count个key的list中值为value的元素 lpop(key):返回并删除名称为key的list中的首元素 rpop(key):返回并删除名称为key的list中的尾元素 blpop(key1, key2,… key N, timeout):lpop命令的block版本。 brpop(key1, key2,… key N, timeout):rpop的block版本。 rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部 对Set操作的命令 sadd(key, member):向名称为key的set中添加元素member srem(key, member) :删除名称为key的set中的元素member spop(key) :随机返回并删除名称为key的set中一个元素 smove(srckey, dstkey, member) :移到集合元素 scard(key) :返回名称为key的set的基数 sismember(key, member) :member是否是名称为key的set的元素 sinter(key1, key2,…key N) :求交集 sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合 sunion(key1, (keys)) :求并集 sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合 sdiff(key1, (keys)) :求差集 sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合 smembers(key) :返回名称为key的set的所有元素 srandmember(key) :随机返回名称为key的set的一个元素 对Hash操作的命令 hset(key, field, value):向名称为key的hash中添加元素field hget(key, field):返回名称为key的hash中field对应的value hmget(key, (fields)):返回名称为key的hash中field i对应的value hmset(key, (fields)):向名称为key的hash中添加元素field hincrby(key, field, integer):将名称为key的hash中field的value增加integer hexists(key, field):名称为key的hash中是否存在键为field的域 hdel(key, field):删除名称为key的hash中键为field的域 hlen(key):返回名称为key的hash中元素个数 hkeys(key):返回名称为key的hash中所有键 hvals(key):返回名称为key的hash中所有键对应的value hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value
参考:http://www.cnblogs.com/oubo/archive/2011/09/07/2394568.html