Redis入门学习

----------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数据库:

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






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Loren_云淡风轻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值