JAVAEE我爱编程

JAVAEE——Redis数据库

2018-04-17  本文已影响15人  So_ProbuING

NoSQL

什么是NoSQL

NoSQL(NoSQL=Not only SQL),直译为“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库

出现背景

传统的关系数据库在应付新的网站时,特别是超大规模和高并发的sns类型的web2.0纯动态网站时已经显得力不从心。出现了很多的问题,例如:

主流NoSQL产品

图片.png

NoSQL数据库的分类

图片.png
图片.png
图片.png

Redis简介

Redis是用C语言开发的一个开源的高性能键值对数据库,通过提供多种键值数据类型来适应不同场景下的存储需求。目前Redis支持的键值数据类型如下

关于关系型数据库和nosql数据库

关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而nosql数据 库是基于特殊的结构,并将数据存储到内存的数据库。从性能上而言,nosql数据库 要优于关系型数据库,从安全性上而言关系型数据库要优于nosql数据库,所以在实 际开发中一个项目中nosql和关系型数据库会一起使用,达到性能和安全性的双保证。

安装Redis数据库(Linux)

yum install gcc-c++
tar -xvf file -c /usr/local
make PREFIX=/usr/local/redis install命令安装redis到/usr/local/redis中
redis-server redis.conf
# centos 6.5
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

/etc/rc.d/init.d/iptables save
# centos 7
firewall-cmd --zone=public --add-port=6379/tcp --permanent

启动redis

在redis bin下

./redis-server

启动后看到如下界面代表启动成功


图片.png

redis目录结构及功能

图片.png

启动redis客户端(前端启动)

redis客户端在安装目录下 bin/redis-cli 启动客户端

./redis-cli
set username zhangsan
get username
图片.png

redis后端启动

vim redis.conf

连接redis客户端

redis-cli -h ip地址 -p端口

向redis发送命令

图片.png

使用JAVA来操作Redis -----Jedis

导入Jar包

图片.png

单实例连接

 //获得连接对象
        Jedis jedis = new Jedis("103.249.130.171", 6379);
        String username = jedis.get("username");
        System.out.println(username);
        //存储数据
        jedis.set("addr", "beijing");
        //取出存储的数据
        System.out.println(jedis.get("addr"));
        //释放资源
        jedis.close();

连接池连接

 //创建连接池配置对象
        JedisPoolConfig poolConfig = new JedisPoolConfig();
        //设置最大闲置个数
        poolConfig.setMaxIdle(30);
        //设置最小闲置个数
        poolConfig.setMinIdle(10);
        //设置最大连接数
        poolConfig.setMaxTotal(50);
        //创建redis连接池
        JedisPool pool = new JedisPool(poolConfig, "103.249.130.171", 6379);
        //从连接池中获取redis的连接资源
        Jedis jedis = pool.getResource();
        //存储数据
        jedis.set("age", "22");
        //存取数据
        System.out.println(jedis.get("age"));
        //释放资源
        jedis.close();

Redis的数据结构

图片.png

存储String

概述

字符串类型是redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型存入和获取的数据相同,在Redis中字符串类型的Value最多可以容纳的数据长度是512M

赋值

取值

删除

使用 del key来删除 key对应的value值


图片.png

数值增减

扩展命令

存储hash

Redis中的Hash类型可以看成具有String key和String value的map容器。所以该类型非常适合于存储值对象的信息。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存储4294967295个键值对


图片.png

常用命令

赋值

取值

删除

增加数字

图片.png

存储List

图片.png 图片.png 图片.png
图片.png

常用命令

两端添加

图片.png

查看列表

lrange list1 0 7 等同于 lrange list 0 -1
图片.png

两端弹出

获取列表中元素的个数

rpoplpush

图片.png

存储set

概述

图片.png

常用命令

存储和添加元素

获得集合中的元素

集合的差运算 A-B

图片.png

集合的交集运算

集合的并集运算

扩展命令

sortedset

概述

图片.png

常用命令

添加元素

获得元素

删除元素

范围查询

其他命令

图片.png

keys的通用操作

Redis特性

Redis多数据库

概念

一个Redis实例可以包括多个数据库,客户端可以指定连接某个redis实例的哪个数据库,就好比一个mysql钟创建多个数据库,客户端连接时指定连接哪个数据库
一个redis实例最多可提供16个数据库,下标从0到15 客户端从默认连接第0号数据库,也可通过select选择连接哪个数据库


图片.png

newkey移植到1号库

图片.png

消息订阅与发布

图片.png 图片.png 图片.png

Redis事物

图片.png

命令

图片.png
图片.png 图片.png 图片.png 图片.png

Redis持久化

图片.png 图片.png 图片.png
图片.png 图片.png 图片.png 图片.png 图片.png 图片.png 图片.png
上一篇 下一篇

猜你喜欢

热点阅读