redis

NoSQL

介绍Redis之前,先了解下NoSQL (Not noly SQL)不仅仅是SQL属于非关系型数据库;Redis就属于非关系型数据库;传统的Mysql ,oracle ,sql server 等都是关系型数据库

使用NoSQL主要应对以下问题,传统关系型数据库力不从心

High performance -高并发读写

Huge Storage-海量数据的高效率存储和访问

High Scalablility && High Availability 高可扩展性和高可用性

特点

易扩展   灵活的数据模型  大数据量 高性能  高可用

高性能键值对数据库  支持的键值数据类型

字符串类型 列表类型 有序集合类型 散列类型 集合类型

Redis的应用场景

缓存 任务队列 网站访问统计 数据过期处理 应用排行榜 分布式集群架构中的session分离

Redis安装

服务器没有gcc环境的 先来安装gcc  redis是基于c编写的

[root@hdp-01 ~]# yum install gcc-c++ -y

wget方式 下载redis压缩包 解压以及编译

[root@hdp-01 ~]# wget http://download.redis.io/releases/redis-4.0.12.tar.gz
[root@hdp-01 ~]# tar -zxvf redis-4.0.12.tar.gz
[root@hdp-01 ~]# cd redis-4.0.12
[root@hdp-01 ~]# make

安装redis

[root@hdp-01 redis-4.0.12]# make PREFIX=/usr/local/redis install

redis已经安装到了/usr/local/redis下

cd回到root,我们需要把一个配置文件 复制到 /usr/local/redis下 后台启动用到

[root@hdp-01 redis-4.0.12]# cp redis.conf /usr/local/redis/

启动和关闭redis服务

启动redis就是执行redis里的bin里的redis-server命令

进入redis目录 执行

[root@hdp-01 redis-4.0.12]#  cd /usr/local/redis/
[root@localhost redis]# bin/redis-server

 出现这种图标,说明启动成功 但是 这种启动是前端或者前台启动 假如退出 程序就终止或者退出了

所以这种服务程序 必须后端运行 通过修改配置文件redis.conf

[root@hdp-01 redis]# vi /usr/local/redis/redis.conf

找到

 no 改为 yes

 加载配置文件运行

[root@localhost redis]# ./bin/redis-server ./redis.conf 

通过ps -ef | grep -i redis命令来搜索redis服务

[root@hdp-01 redis]#  ps -ef | grep -i redis
root      26442      1  0 16:40 ?        00:00:00 ./bin/redis-server 127.0.0.1:6379
root      26447  21137  0 16:41 pts/0    00:00:00 grep --color=auto -i redis

redis基本使用

redis-cli 连接redis客户端命令

[root@hdp-01 redis]#  ./bin/redis-cli
127.0.0.1:6379> set  name zhangsan
OK
127.0.0.1:6379> get name
"zhangsan"

Jedis

实际开发中 我们需要用Redis的连接工具连接Redis然后操作Redis 对于主流语言 Redis都提供了对应的客户端

Redis提供了很多客户端 官方推荐的是Jedis  托管地址:https://github.com/xetorthio/jedis

 https://redis.io/clients#java

Jedis连接 HelloWorld实现

新建Maven项目 pom里加下jedis依赖

<dependencies>
    <dependency>
     <groupId>redis.clients</groupId>
     <artifactId>jedis</artifactId>
     <version>2.9.0</version>
    </dependency>
 </dependencies>
public class JedisTest {
    
     public static void main(String[] args) {
            Jedis jedis=new Jedis("192.168.88.128",6379); // 创建客户端 设置IP和端口
            jedis.set("name", "lisi"); // 设置值
            String value=jedis.get("name"); // 获取值
            System.out.println(value);
            jedis.close(); // 释放连接资源
        }
}

测试代码  运行 报错了

配置下防火墙 开一个6379端口权限

[root@hdp-01 ~]# firewall-cmd --zone=public --add-port=6379/tcp --permanent
[root@hdp-01 ~]# firewall-cmd --reload

继续运行 还是报错 连接超时 错误  我们配置下 redis配置文件

[root@hdp-01 redis]# vi /usr/local/redis/redis.conf

这里绑定了本机 我们把这个备注掉

# bind 127.0.0.1

配置完后 

[root@localhost redis]# ps -ef | grep -i redis
[root@localhost redis]# kill -9 1180 [root@localhost redis]# ./bin/redis-server ./redis.conf

 继续运行 又报错了

设置redis连接密码

[root@hdp-01 redis]# ./bin/redis-cli
127.0.0.1:6379> config set requirepass 123456
OK
public class JedisTest {
    
     public static void main(String[] args) {
            Jedis jedis=new Jedis("192.168.88.128",6379); // 创建客户端 设置IP和端口
            jedis.auth("123456");
            jedis.set("name", "lisi"); // 设置值
            String value=jedis.get("name"); // 获取值
            System.out.println(value);
            jedis.close(); // 释放连接资源
        }
}
[root@hdp-01 redis]# ./bin/redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> get name
"lisi"
原文地址:https://www.cnblogs.com/renxixao/p/11442770.html