redis 入门

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

时间: 2024-10-12 10:13:56

redis 入门的相关文章

Redis入门指南

随着互联网业务对性能需求日益强烈,作为Key/Value存储的Redis具有数据类型丰富和性能表现优异的特点.如果能够熟练地驾驭它,不管是把它用做缓存还是存储,对很多大型应用都很多帮助.新浪作为世界上最大的Redis使用者,体会到了Redis为高并发在线业务带来的好处,但同时也遇到了很多挑战,新浪为推动Redis这种NoSQL产品在中国互联网产品技术架构中的使用做出了卓越的贡献.作为国内第一本推进Redis普及的书,此书比较详细地介绍了Redis入门必备的基础知识,同时拥有了一些实践性方面的章节

Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)

Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 - 转载请保留该原文链接) 07/19/12 03:08:05 PM 在Jedis开发中,我们很多时候希望直接把一个对象放到Redis中,然后在需要的时候取出来.Redis的key和value都支持二进制安全的字符串,存储Java对象不是问题,下面我们看一下如何来实现. 1要存储的对象 现在写一个

Redis入门很简单之七【使用Jedis实现客户端Sharding】

Redis入门很简单之七[使用Jedis实现客户端Sharding] 博客分类: NoSQL/Redis/MongoDB redisjedisspringsharding分片 <一>. 背景介绍: 1. sharding机制:即通常所说的"分片",允许数据存放在不同的物理机器上,  以适应数据量过大的场景,克服单台机器内存或者磁盘空间的限制.而这种"离散式"地存放,对客户端来说是透明的,对客户端来讲,完全看不到这种差别. 2. 常见的内存缓存中间件,比如

Redis入门很简单之四【初识Jedis】

Redis入门很简单之四[初识Jedis] 博客分类: NoSQL/Redis/MongoDB redisnosql缓存jedis 使用Jedis提供的Java API对Redis进行操作,是Redis官方推崇的方式:并且,使用Jedis提供的对Redis的支持也最为灵活.全面:不足之处,就是编码复杂度较高. [一]. 入门使用: 下载Jedis的依赖包jedis-2.1.0.jar,然后将其添加到classpath下面.然后,即可进行编程:  1. 定义连接:Redis暂时不要设置登录密码 J

Redis入门很简单之五【Jedis和Spring的整合】

Redis入门很简单之五[Jedis和Spring的整合] 博客分类: NoSQL/Redis/MongoDB redisnosql缓存jedisspring 在上一篇文章中,简单介绍了Jedis的连接池使用方式. 如果和Spring进行整合的话,我们将获得更好的简洁性.灵活性,显然是一种更加优雅(graceful)的方式. [一]. 搭建环境: 1. 在之前版本的基础之上,添加如下的依赖:   spring.jar   commons-logging.jar   log4j-1.2.15.ja

Redis入门很简单之二【常见操作命令】

Redis入门很简单之二[常见操作命令] 博客分类: NoSQL/Redis/MongoDB redisnosql缓存 Redis提供了丰富的命令,允许我们连接客户端对其进行直接操作.这里简单介绍一下作为常用的一些命令,包括对字符串.列表.集合.有序集合.哈希表的操作,以及一些其他常用命令. [ 基本操作] 1. 添加记录:通常用于设置字符串(string)类型,或者整数类型:如果key已经存在,则覆盖其对应的值. Shell代码   set name James 2. 获取记录:通过键获取值.

Redis入门很简单之六【Jedis常见操作】

Redis入门很简单之六[Jedis常见操作] 博客分类: NoSQL/Redis/MongoDB redisjedisnosql缓存教程 之前介绍了Jedis的基本操作,连接池的支持,以及和Spring的整合.接下来的内容,继续Jedis的最为常见的操作.主要包括常用的列表(list).集合(set).有序集合(sorted set).哈希表(hash)等数据结构,以及其他特性支持. <一>. 使用list: 可以使用列表模拟队列(queue).堆栈(stack),并且支持双向的操作(L或者

redis入门笔记(1)

redis入门笔记(1) 1. Redis 简介 •Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server).Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes).列表(lists).集合(sets)和 有序集合(sorted sets)等数据类型. 对于这些数据类型,你可以执行原子操作.例如:对字符串进行附加操作(append):递增哈希中的值:向列表中增加元素:

redis入门笔记(2)

redis入门笔记(2) 上篇文章介绍了redis的基本情况和支持的数据类型,本篇文章将介绍redis持久化.主从复制.简单的事务支持及发布订阅功能. 持久化 •redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化,这是相对memcache来说的一个大的优势.redis支持两种持久化方式,一种是 Snapshotting(快照)也是默认方式,另一种是Append-only file(缩写aof)的方式. Snapshotting        快

Redis入门实例

在此之前,对Redis有必要清楚以下问题: Redis是什么? Redis解决了什么问题? Redis的优势? 如何使用Redis?(本文重点) Redis是什么 首先看官网的定义: Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 所以,Redis是一个key-value的内存数据库.不过Redis在生产环境中使用最多的功能是缓存系统.至于其他作用比如数据库和消息中间件,则不会展开. Redis解决了什么问题 在大型网站技术架构中,缓存系统