赞
踩
----------NoSQL(Not Only Sql)非关系型数据库的特性:
1,High performance --高并发读写
2,Huge Storage--海量数据的高效率存储和访问
3,High Scalability && High Availability--高可扩展性和高可用性
目前市面上流行的NoSQL的数据库有:Redis、CouchDB、mongoDB、membase、cassandra、riak等
NoSQL数据库的四大分类:
键值存储(key--value)、列存储、文档数据库、图形数据库
NoSQL的特点:易扩展、灵活的数据模型、大数据量,高性能、高可用。
web1.0(关系型数据库)、web2.0(非关系型数据库)
-------------Redis
redis高性能键值对数据库,支持的键值数据类型:字符串类型、散列类型、列表类型、集合类型、有序集合类型。
--windows环境下安装Redis及配置环境变量
下载地址:https://github.com/MSOpenTech/redis/releases
一般下载第二个:Redis-x64-3.2.100.zip,下载后解压即可。比如我文件是放在D:\DevelopmentRoot\redis下
配置环境变量:找到path,编辑,在最后追加:D:\DevelopmentRoot\redis即可。然后cmd进入命令行方式,输入:redis-server即打开了redis的服务器,如果要打开redis的客户端,同理,cmd-->输入:redis-cli,可看到页面上出现客户端的服务器ip及端口,默认ip为127.0.0.1,端口为6379,这两个都是可以进行修改的,打开redis文件夹下面的redis.windows.conf文件,大概在56行,找到:bind 127.0.0.1,表示服务器ip,大概79行找到:port 6379表示默认的端口。比如,我在客户端输入:set key abc,回车,然后输入:get key回车后可以看到“abc”被输入出来。这一过程就是利用redis数据库进行字符串的添加值与取值。
redis的五种数据结构:字符串(Stirng)、字符串列表(list)、有序字符串集合(stored set)、哈希(hash)、字符串集合(set)
字符串:二进制安全的,存入和获取的数据相同;value最多可以容纳的数据长度为512M。
字符串:set存值,get取值,getset先取值在存值;del删除某个值;incr表示为某个整型数据进行自增,默认初始值为0;decr表示为某个整型数据进行自减,默认初始值为0;incr key value1(添加的值)表示为某个整型数增加value1,是incr的扩展命令;同理,decr key value1;append表示为某个变量追加一个字符串(这个变量可以是字符串也可以是整数等),如append "name" 5,结果就为name5,如果如果append后面的key为初始化过,则使用append后的值就为key后面的value值,比如:append key 1,key未初始化过,则结果为1.
哈希:hset表示为某个哈希设置key,value,hget表示获取某个哈希里面的key对应的value值;hmset表示为某个哈希同时设置多个hey,value键值对,hmget表示同时可以获取多个哈希里面的keys对应的values;hdel表示删除哈希里面的指定key,hgetall表示获取哈希里面的所有keys,values键值对;hincrby表示为哈希里面的某个key对应的value值加上某个变量值求和;hexits表示哈希中是否存在某个key,hkeys表示列出哈希里面的所有key,hvals表示列出哈希里面的所有values。
。。。。。。。。。。。
redis数据库个数:默认为16个,可在redis-windows.conf文件中找到,查询某个数据库的命令为:select 0(表示查询第一个数据库),select 1表示查询第二个数据库,
如果想要将第一个数据库里面的name数据转到第二个数据库,可先切换到第一个数据库,然后命令:move name 1即可将该数据转到第二个数据库中。
redis事务:
multi:相当于关系型数据库中的beginSession表示开启事务;exec:相当于关系型数据库中的commit,表示提交;discard:相当于关系型数据库中的rollback。
当开启事务后如果没有进行exec,则在另一个客户端获取的数据还是之前的数据。
----------------Jedis入门
redis对Java的连接方式有:areids、JDBC-Redis、Jedipus、Jedis、JRedis、lettuce、mod-redis,官网推荐是Jedis连接
新建maven项目,在pom.xml中加入jedis的坐标(如果不知道Jedis的坐标,可在maven中央仓库搜索,这里引用最新Jedis的jar包,Jedis坐标如下:)
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
如果不想用maven来引包,也可直接下载对应包,然后导入到项目中,这里不作说明。
以下提供两个小例子说明怎么使用,可直接copy出来运行:
package com.org.redis.redis_model;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
/**
* Hello world!
*
*/
public class jedisDemo1
{
@Test
/**
* 单实例连接
*/
public void test1(){
//连接Jedis的服务器
Jedis jedis=new Jedis("127.0.0.1", 6379);
//设置字符串值
jedis.set("name", "jack");
//取值
String value=jedis.get("name");
System.out.println("值为:"+value);
//Redis Java String(字符串) 实例 存储数据到列表中
jedis.lpush("site-list", "Runoob");
jedis.lpush("site-list", "Google");
jedis.lpush("site-list", "Taobao");
//Redis Java List(列表) 实例 获取存储的数据并输出
List<String> list = jedis.lrange("site-list", 0 ,2);
for(int i=0; i<list.size(); i++) {
System.out.println("列表项为: "+list.get(i));
}
//Redis Java Keys 实例 获取数据并输出
Set<String> keys = jedis.keys("*");
Iterator<String> it=keys.iterator() ;
while(it.hasNext()){
String key = it.next();
System.out.println(key);
}
//关闭链接资源
jedis.close();
}
@Test
/**
* 连接池连接
*/
public void test2(){
//获取连接池的配置对象
JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
//设置最大连接数
jedisPoolConfig.setMaxTotal(30);
//设置最大空闲数
jedisPoolConfig.setMaxIdle(10);
//获取连接池
JedisPool jedisPool=new JedisPool(jedisPoolConfig,"127.0.0.1",6379);
//获取连接对象
Jedis jedis=null;
try {
jedis=jedisPool.getResource();
//开始添加值
jedis.set("name", "张三");
String value=jedis.get("name");
System.out.println(value);
} catch (Exception e) {
System.out.println("连接失败了!");
}finally {
if(jedis != null){
jedis.close();
}
if(jedisPool != null){
jedisPool.close();
}
}
}
}
---------------------------------Redis的持久化
所谓持久化就是指将保存在Redis服务端内存的数据同步到本地硬盘来保存,以便后面关闭服务后数据仍然存在的情况。
两种方式:RDB、AOF以及RDB与AOF合并使用。
在redis客户端输入:save然后回车,会在你的redis文件夹下(与redis-server.exe同级的地方)生成一个dump.dbf文件,这个文件就是一个备份文件,如果没有显示出来,可能被隐藏了,通过文件选项设置就可以出来了(可百度)。
通过命令:config get dir可获取到默认生成的dump.dbf文件不存的路径,也可以在redis.windows.conf文件中找到:dir ./的位置,然后改成:dir D:\DevelopmentRoot\redis(自己想要保存的dump.dbf文件的位置)
-------------redis的Linux系统安装过程
1,需要安装gcc工具,在安装gcc工具时需要是root用户才能安装否则会失败,命令行为:
yum install gcc
2,然后等待,输入:y 继续等待,再次输入:y 直到看到complete!表示成功安装好了。
3,下载并解压Redis(也可用windows环境下下载gz包,然后利用上传工具FileZilla进行上传),命令行方式为:
下载redis: wget http://download.redis.io/releases/redis-2.8.17.tar.gz
解压redis tar xzf redis-2.8.17.tar.gz 打开解压后的文件 cd redis-2.8.17 编译: make 启动redis服务: cd src ./redis-server 启动redis客户端(需要另开窗口): cd src ./redis-cli
----------------------------------------
http://www.runoob.com/redis/redis-partitioning.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。