redis 入门
1、命令行工具
在windows上巧命令行指令,实在是令人痛苦,本人实在是受不了windows下cmd的笨,powershell的蠢,只能换一个了。
介绍一款cmd工具cmder(github上开源),地址:http://bliker.github.io/cmder/,如下图,若有更好的工具,请大家告诉一下我,在此,先谢谢。
注:"λ"为cmder工具的标识,后边指令凡是遇到这个字符,都可以跳过
2、官方下载redis
地址:http://redis.io/download,
官方提供linux版本,可以直接在此处下载
若是需要windows版本,官方推荐https://github.com/MSOpenTech/redis/releases。我下载的是此版本后,解压下载包到本地目录,如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代码片段
//redis -> jedis
//驱动地址:https://raw.githubusercontent.com/xetorthio/jedis/mvn-repo/redis/clients/jedis/2.2.0/jedis-2.2.0.jar
//或者http://files.cnblogs.com/piaolingzxh/jedis-2.2.0.jar.zip
import java.util.List; import redis.clients.jedis.*; public class redis_jedis { public static void main(String[] args) {
Jedis redis = new Jedis("localhost", 6379);// 连接redis
// String
redis.del("user");
redis.set("user", "piaolingzxh");
System.out.println(redis.get("user"));
// List
redis.del("edu");
redis.lpush("edu", "xiaoxue", "chuzhong", "gaozhong");
List<String> eduList = redis.lrange("edu", 0, -1);
for (int i = 0; i < eduList.size(); i++) {
System.out.print(eduList.get(i) + "\t");
}
System.out.println(); // hash key field value
redis.del("home_address");
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.print(list.get(i) + "\t");
}
}
}
到数据库中查看结果
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
//redis -> jedis
//驱动地址:https://raw.githubusercontent.com/xetorthio/jedis/mvn-repo/redis/clients/jedis/2.2.0/jedis-2.2.0.jar
//或者http://files.cnblogs.com/piaolingzxh/jedis-2.2.0.jar.zip
import redis.clients.jedis.Jedis; object redis_jedis {
def main(args: Array[String]): Unit = {
var redis = new Jedis("localhost", 6379);
// String
redis.del("user");
redis.set("user", "piaolingzxh");
System.out.println(redis.get("user")); // List
redis.del("edu");
redis.lpush("edu", "xiaoxue", "chuzhong", "gaozhong");
redis.lrange("edu", 0, -1).toArray().foreach((str) => System.out.print(str + "\t"));
System.out.println(); // hash key field value
redis.del("home_address");
redis.hset("home_address", "province", "henan");
redis.hset("home_address", "city", "sanmenxia");
redis.hset("home_address", "detail", "what a u doing?"); redis.hmget("home_address", "province", "city", "detail").toArray().foreach((str) => System.out.print(str + "\t"));
System.out.println(); }
}
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
redis 入门的更多相关文章
- 安装redis入门
redis官网:redis.io redis版本用的是redis-3.2.2 $ wget http://download.redis.io/releases/redis-3.2.2.tar.gz $ ...
- redis入门笔记(2)
redis入门笔记(2) 上篇文章介绍了redis的基本情况和支持的数据类型,本篇文章将介绍redis持久化.主从复制.简单的事务支持及发布订阅功能. 持久化 •redis是一个支持持久化的内存数据库 ...
- redis入门笔记(1)
redis入门笔记(1) 1. Redis 简介 •Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure serv ...
- Redis入门指南
随着互联网业务对性能需求日益强烈,作为Key/Value存储的Redis具有数据类型丰富和性能表现优异的特点.如果能够熟练地驾驭它,不管是把它用做缓存还是存储,对很多大型应用都很多帮助.新浪作为世界上 ...
- Redis入门教程:特性及数据类型的操作
虽然Redis已经很火了,相信还是有很多同学对Redis只是有所听闻或者了解并不全面,下面是一个比较系统的Redis介绍,对Redis的特性及各种数据类型及操作进行了介绍.是一个很不错的Redis入门 ...
- 【原】Redis入门教程
最近在学习Redis,写几篇文章记录一下学习过程:Redis入门教程. 1.Redis基本概念 Redis Redis Keys Redis 基本数据类型 Redis基本操作 遍历操作 Pub-Sub ...
- windows下使用redis,Redis入门使用,Redis基础命令
windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...
- Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)
Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 ...
- redis入门(15)redis的数据备份和恢复
redis入门(15)redis的数据备份和恢复
- redis入门(14)redis集群下的数据分区存储
redis入门(10)redis集群下的数据分区存储
随机推荐
- USB枚举过程
1. 枚举是什么? 枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序.调试USB设备,很重要的一点就是USB的枚举过程,只 ...
- LeetCode 107. Binary Tree Level Order Traversal II
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...
- Log4j等级测试
一.结论: 1./**debug.info.warn.error.fatal由低到高*/ 2.注意:log.error(message,e)不会打印异常堆栈信息. 二.测试过程 1.代码 packag ...
- 10gR2-11gR1,11gR2如何干净的清除并重建OCR和表决磁盘
下面分别讨论10gR2-11gR1和11gR2干净的清除并重建OCR和表决磁盘的方法. 一.10gR2-11gR1干净的清除并重建OCR和表决磁盘的方法 参考METALINK文章:ID 399482. ...
- POJ3264RMQ
http://poj.org/problem?id=3264 #include<stdio.h> #include<string.h> #include<algorith ...
- OC对象中的getter方法中不能用self.
@interface boy:NSObject { int _age; } - (void)setAge:(int)age; - (int)age; @end @implementation boy ...
- CnBlogs博文排版技巧(转)
看的一篇讲博文排版技巧的文章,虽然有些地方有些过时,不过还是有些可以借鉴地方的 http://www.cnblogs.com/lyj/archive/2008/11/30/1344463.html
- 003.ASP.NET MVC集中管理Session
原文链接:http://www.codeproject.com/Tips/790387/Session-in-ASP-NET-MVC 1.前言 今天有得有失啊,看到这篇,专心记下里面的精华吧 2.一般 ...
- python基础set
1.set set是一个无序的不重复的集合 li=[11,22,33,11] s=set(li) print(s) {11,22,33} set提供的方法 1.add(self, *args, ** ...
- springMVC导入excel案例poi
直接上代码: 第一步,controller 引入 private static final String CHECK_FILE = "checkExceFile"; /** * 对 ...