Redis 基础入门

NoSQL

NoSQL(Not Only SQL),意思是“不仅仅是 SQL”,是一项全新的数据库理念,泛指非关系型数据库。

为什么需要 NoSQL

随着互联网 web2.0 网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应对 web2.0 网站,特别在超大规模和高并发的 SNS 类型的 web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服得问题,例如:

  • High performance 对数据库高并发读写得需求。
  • Huge Storage 对海量数据得高效率存储和访问得需求
  • High Scalability && High Availability 对数据库得高可扩展性和高可用性得需求。

作为过来人,我知道这些语句不容易理解,一两句很难解释清楚,想了解得详细点,自行百度学习吧!

NoSQL 特点

在大数据存取上具备关系型数据库无法比拟的性能优势,例如:
在这里插入图片描述
所以,NoSQL 的非关系特性使其成为了后 Web2.0 时代的宠儿,助力大型 Web2.0 网站的再次起飞,是一项全新的数据库革命性运动。

主流 NoSQL 产品

主流 NoSQL 产品有很多,就不一一列出来了,这里我们只学习 Redis.

Redis

Redis 是用 C语言开发的一个开源的高性能键值对 (key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前位置 Redis 支持的键值数据类型有 5 种:

1. 字符串类型--String
2. 散列类型--Hash
3. 列表类型--List
4. 集合类型--Set
5. 有序集合类型--SortedSet

至于 Redis 的安装和使用,我大致的列一下步骤:

1. 安装 redis 编译的 c 环境,根目录执行 yum install gcc-c++

2. 将 redis-2.x.xx.tar.gz 上传到 Linux 系统中 ( redis 自行下载,linux 自行安装 )

3. 解压到 /usr/local 下 ,在 redis-2.x.xx.tar.gz 所在文件夹中
   执行 tar -xvf redis-2.x.xx.tar.gz -C /usr/local

4. 进入 redis-2.x.xx 目录 使用 make 命令编译 redis

5. 在 redis-2.x.xx 目录中 使用 make PREFIX=/usr/local/redis install 
   命令安装 redis-2.x.xx 到 /usr/local/redis 中

7. 拷贝 redis-2.x.xx 中的 redis.conf 到安装目录 redis 中

8. 启动 redis 在bin下执行命令 ./redis-server ./redis.conf

9. 如需远程连接 redis,需配置 redis 端口 6379 在 linux 防火墙中开发
    /sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
    /etc/rc.d/init.d/iptables save

启动后看到如下欢迎页面,但此窗口不能关闭,窗口关闭就认为 redis 也关闭了(类似 Tomcat 通过 bin 下的 startup.bat 的方式)
在这里插入图片描述
解决方案:

可以通过修改配置文配置 redis 后台启动。
将 redis.conf 文件中的 daemonize 从 no 修改成 yes 表示后台启动
保存后重复步骤 8 ,然后在 /bin 下再执行 ./server-cli 即可操作 redis 数据库了。

至于停止 redis 的使用,在 redis-cli 目录下执行 SHUTDOWN 命令即可!

Jedis

Jedis 集成了 redis 的一些命令操作,封装了 redis 的 java 客户端,还提供了连接池管理。

下面我们来简单学习一下,Java 连接 Redis!

准备工作:首先导入下面两个 jar 包。

在这里插入图片描述

获得单一的 Jedis 对象操作数据库
@Test
		//获得单一的jedis对象操作数据库
		public void test1(){
			
			//1、获得连接对象
			Jedis jedis = new Jedis("192.168.64.128", 6379);
			
			//2、获得数据
			String username = jedis.get("username");
			System.out.println(username);
			
			//3、存储
			jedis.set("addr", "深圳1");
			System.out.println(jedis.get("addr"));
		}

ps:如果你之前还没配置 redis 端口 6379 在 linux 防火墙中开发,那么会抛出连接超时异常。
在这里插入图片描述
那应该怎么解决呢?点击这里,写的挺好的!

通过 Jedis 的 pool 获得 Jedis 连接对象
@Test
		public void test2(){
			//0、创建池子的配置对象
			JedisPoolConfig poolConfig = new JedisPoolConfig();
			poolConfig.setMaxIdle(30);//最大闲置个数
			poolConfig.setMinIdle(10);//最小闲置个数
			poolConfig.setMaxTotal(50);//最大连接数
			
			//1、创建一个redis的连接池
			JedisPool pool = new JedisPool(poolConfig, "192.168.64.128", 6379);
			
			//2、从池子中获取redis的连接资源
			Jedis jedis = pool.getResource();
			
			//3、操作数据库
			jedis.set("XXXX","YYYY");
			System.out.println(jedis.get("XXXX"));
			
			//4、关闭资源
			jedis.close();
			pool.close();
			
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值