Redis 入门

目标:

  1. Linux系统中安装redis
  2. 使用Redis命令操作常用数据结构的数据存取
  3. 在java程序中通过jedis连接Redis

 

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

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

 

什么是Redis

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

  1. 字符串类型
  2. 散列类型
  3. 列表类型
  4. 集合类型
  5. 有序集合类型

官方提供测试数据:50个并发执行100000个请求,读的速度是110000次/s,写的速度是

81000次/s,数据仅供参考,根据、服务器配置会有不同结果

redis的应用场景

  • 缓存(数据查询、短连接、新闻内容、商品内容等等)最多使用
  • 聊天室的在线好友列表
  • 任务队列
  • 应用排行榜
  • 网站访问统计
  • 数据过期处理(可以精确到ms)
  • 分布式集群架构中的session分离。

Redis安装和使用

建议在linux上安装

CentOs安装Redis

  1. 安装redis编译的c环境,yum install gcc-c++
  2. 将redis-2.6.16.tar.gz上传到Linux系统中
  3. 解压到/usr/local下  tar -xvf redis-2.6.16.tar.gz -C /usr/local
  4. 进入redis-2.6.16目录 使用make命令编译redis
  5. 在redis-2.6.16目录中 使用make PREFIX=/usr/local/redis install命令安装                redis到/usr/local/redis中
  6. 拷贝redis-2.6.16中的redis.conf到安装目录redis中
  7. 启动redis 在bin下执行命令redis-server redis.conf
  8. 如需远程连接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从false修改成true表示后台启动

                 使用命令查看6379端口是否启动ps -ef | grep redis

redis停止

  1. 强制结束程序。强行终止Redis进程可能会导致redis持久化数据丢失。kill -9 pid
  2. 正确停止Redis的方式是向Redis发送SHUTDOWN命令

         cd /usr/local/redis

        ./bin/redis-cli shutdown

 

Redis使用

连接客户端

向Redis服务器发送命令

keys * 查看当前库中所有的key值

 

使用java操作redis

创建web/maven-web项目,在lib文件下导入依赖包或者在pom.xml文件中添加依赖

测试jedis代码:

单实例连接和连接池连接

package redis;

import org.junit.Test;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class JedisTest {
   
	//通过java程序访问redis数据库
	
	@Test
	// java+redis =jedis
	//获得单一的jedis对象操作数据库
	public void test1() {
		
		//1.获得连接对象
		Jedis jedis = new Jedis("192.168.112.128",6379);
		
		//2.获得数据
		String username= jedis.get("username");
		System.out.println(username);
		
		//3.存储
		jedis.set("addr", "北京");
		System.out.println(jedis.get("addr"));
	}
	
	//通过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.112.128",6379); 
	    
		//2.从池子中获取redis的访问资源
		Jedis jedis = pool.getResource();
		
		//3操作数据库
		
		jedis.set("xxx","yyyy");
		System.out.println(jedis.get("xxx"));
		
		//4.关闭资源
		jedis.close();
		pool.close();
	}
}

工具类见github:

https://github.com/ztslx678111/redis.git

 

Redis的常用命令见下节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值