0
点赞
收藏
分享

微信扫一扫

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安装和使用

Redis 入门_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 入门_redis_02

启动后看到如上欢迎页面,但此窗口不能关闭,窗口关闭就认为redis也关闭了(类似Tomcat通过bin下的startup.bat的方式)           

解决方案:

                 可以通过修改配置文件 配置redis后台启动,即服务器启动了但不会 穿件控制台窗口

                 将redis.conf文件中的daemonize从false修改成true表示后台启动

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

Redis 入门_Redis_03

redis停止

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

         cd /usr/local/redis

        ./bin/redis-cli shutdown

Redis使用

连接客户端

Redis 入门_Redis入门_04

向Redis服务器发送命令

Redis 入门_关系型数据库_05

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

使用java操作redis

Redis 入门_Redis入门_06

创建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 入门_关系型数据库_07

 

Redis的常用命令见下节

举报

相关推荐

redis入门

redis 入门

Redis入门

Redis —— 入门

Redis入门-Java操作Redis

Redis入门笔记

Redis入门-安装

0 条评论