linux+redis实战个人学习笔记(二)jdk、mysql等

目录

 

准备工作:安装依赖

Linux系统上安装JDK:

Linux系统上安装MySQL:

Linux系统上安装tomcat:

redis简述及安装

关系型数据库(SQL):

非关系型数据库(NOSQL):

Redis使用环境:

redis安装:

3、redis数据类型【重点】

4、redis命令-String命令【重点】

5、redis命令-hash(了解)

6、Jedis(java操作redis数据库技术)【重点】


  1. Linux上jdk,mysql,tomcat安装【重点】

Windows 控制面板 添加/卸载程序

进行程序的安装、更新、卸载、查看

 

rpm命令:相当于windows的添加/卸载程序

进行程序的安装、更新、卸载、查看

 

本地程序安装:rpm -ivh 程序名

本地程序查看:rpm -qa

本地程序卸载:rpm -e --nodeps 程序名

 

yum命令:相当于可以联网的rpm命令

相当于先联网下载程序安装包、程序的更新包

自动执行rpm命令

 

准备工作:安装依赖

因为JDK,TOMCAT,MYSQL的安装过程中需要从网上下载部分支持包才可以继续,所以要求同学们提前安装下载好依赖

下载安装依赖包的命令,直接一个个复制到linux执行即可

yum install glibc.i686 

yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6

上面的命令如果报

linux+redis实战个人学习笔记(二)jdk、mysql等_第1张图片

那么就在命令后加上     --setopt=protected_multilib=false

即完整命令变为: yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6 --setopt=protected_multilib=false

该命令为检查上面是否安装更新成功:yum  update libstdc++-4.4.7-4.el6.x86_64

linux+redis实战个人学习笔记(二)jdk、mysql等_第2张图片

yum install gcc-c++

 

 

glibc.i686

8MB+21MB

libaio.so.1 libgcc_s.so.1 libstdc++.so.6

417KB

libstdc++-4.4.7-4.el6.x86_64

仅更新检查,

无下载内容

yum install gcc-c++

 

19MB

 

 

 

Linux系统上安装JDK:

安装步骤:

卸载OpenJDK

执行命令查看:

  1. rpm –qa | grep java

  1. 卸载OPENJDK(自带的jdk)
    1. 先查看当前安装的jdk版本
      1. rpm -qa | grep jdk
    2. 得到java-1.X.X等信息 替换下面命令
    3. 执行 pm -e --nodeps java-1.X.X.X

如:rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.i686

创建JDK的安装路径:

在/usr/local/  创建文件夹java目录

mkdir -p /usr/local/java

上传安装文件到linux:

  1. cd ~
  2. ll

解压tar.gz

首先需要安装依赖:【1~5分钟】上面已经安装好了

  1. tar -zxvf jdk-7u71-linux-i586.tar.gz -C /usr/local/java

配置环境变量:

编辑此文件:vim /etc/profile 

在此文件最下面插入一下代码:

#set java environment

JAVA_HOME=/usr/local/java/jdk1.7.0_71

CLASSPATH=.:$JAVA_HOME/lib.tools.jar

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME CLASSPATH PATH

然后保存即可安Esc 退出保存

重新加载配置文件:【否则环境变量不会重新执行】

source /etc/profile

 

Linux系统上安装MySQL:

安装MySQL:

卸载自带mysql:

查询mysql的安装情况

rpm -qa | grep -i mysql

卸载原生的MySQL

rpm -e --nodeps mysql-libs-5.1.71-1.el6.i686

 

上传mysql到Linux:

 

安装依赖(准备阶段已经安装过了):

yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6

yum  update libstdc++-4.4.7-4.el6.x86_64

安装mysql的服务端:

安装服务端

rpm -ivh MySQL-server-5.5.49-1.linux2.6.i386.rpm

安装mysql的客户端:

rpm -ivh MySQL-client-5.5.49-1.linux2.6.i386.rpm

启动mysql的服务:

启动MySQL服务

service mysql start

设置mysql初始密码并登陆MySQL:

/usr/bin/mysqladmin -u root password '123456'

其他问题:

如果是mysql 5.6以上的话,安装好服务会自动给一个随机密码,所以上面的方式可能行不通。那么就要手动去重置密码

重置方法为

1、先找到my.cnf文件进行编辑

可以用find / -name my.cnf命令找一下

找到文件后用

vim 文件全路径 对文件进行编辑,找到mysqld,在下面增加skip-grant-tables 。

linux+redis实战个人学习笔记(二)jdk、mysql等_第3张图片

作用是登陆时跳过登陆认证,换句话说就是root什么密码都可以登陆进去,然后:wq保存退出后,用service mysql restart重启mysql。

现在不论什么密码都可以登陆root用户了。

接下来,在Linux中输入如下命令:

# mysql -uroot -p 此时登录不需要密码了 直接回车

mysql> use mysql; 
mysql> update user set password=password('123456') where user='root'; 
mysql> flush privileges; 

退出mysql  ctrl+c 退出

然后要重新编辑my.cnf,把刚刚增加的skip-grant-tables 删掉,不然登录就一直不需要密码了。

删掉后在重启一下mysql ,   service mysql restart

然后就可以去用密码 123456 试试咯

登进去后密码还需要执行命令 初始化一下

SET PASSWORD = PASSWORD('123456');

到此密码重置结束

 

设置开机自动启动mysql:

加入到系统服务:

chkconfig --add mysql

自动启动:

chkconfig mysql on (off)关闭

开启远程服务:

 

登录mysql:

//赋予root用户所有权限,远程登录密码是123456

grant all privileges on *.* to 'root' @'%' identified by '123456';

flush privileges;

设置Linux的防火墙:

Linux防火墙默认拦截3306端口

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

/etc/rc.d/init.d/iptables save

此时就可以用navicat去远程连接到linux中的mysql了

 

Linux系统上安装tomcat:

安装tomcat:

上传tomcat的安装文件:

 

创建tomcat的安装路径:

mkdir -p /usr/local/tomcat

解压tomcat

tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local/tomcat

设置防火墙:

开放8080端口

/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT   #开启8080端口

    /etc/rc.d/init.d/iptables save #保存配置

    /etc/rc.d/init.d/iptables restart #重启服务

    查看端口是否已经开放

    /etc/init.d/iptables status

启动tomcat:

启动tomcat

执行 /usr/local/tomcat/apache-tomcat-7.0.57/bin/startup.sh

关闭tomcat

执行 /usr/local/tomcat/apache-tomcat-7.0.57/bin/shutdown.sh

 

  1. redis简述及安装

关系型数据库(SQL):

Mysql,oracle

特点:数据和数据之间,表和字段之间,表和表之间是存在关系的

例如:部门表 001部分,   员工表 001

  用户表,用户名、密码

  分类表 和 商品表, 一对多关系。

 

优点:①数据之间有关系,进行数据的增删改查时非常方便的。

  ②关系型数据库 有事务操作。 保证数据的完整性

 

缺点:1、因为数据和数据之间有关系的,关系是由底层大量算法保证

大量算法会拉低系统运行速度

大量算法会消耗系统资源

  2、海量数据的增删改查时会显得无能为力。

很可能宕机

  3、海量数据环境下对数据表进行维护/扩展,也会变得无能为力

update product set cname = ‘手机数码’;//修改所有数据

把商品表的cname字段,由varchar(64),  char(100)

 

适合处理一般量级数据,安全。

 

 

 

非关系型数据库(NOSQL):

为了处理海量数据,需要将关系型数据库的关系 去掉。

 

非关系型数据库设计之初 是为了替代 关系型数据库的

Redis

 

优点:1、海量数据的增删改查,非常轻松应对

  2、海量数据的维护非常轻松。

缺点:1、数据和数据之间没有关系,所以不能一目了然

  2、非关系型数据库,没有关系,没有强大的事务保证数据的 完整和安全

 

适合处理海量数据,效率。不一定安全

奥运健儿奖牌总数

linux+redis实战个人学习笔记(二)jdk、mysql等_第4张图片

 

关系型数据库+非关系型数据库 ====》项目

 重要数据      海量操作数据,不重要

 

 

Redis使用环境:

1、关系型数据库的缓存存在

 

2、可以做任务队列

linux+redis实战个人学习笔记(二)jdk、mysql等_第5张图片

3、大量数据运算

linux+redis实战个人学习笔记(二)jdk、mysql等_第6张图片

4、排行榜

Redis非常擅长做大量数据的排行榜

 

 

 

redis安装:

redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境。如果没有gcc环境,需要安装gcc:(环境已经导入完成)

yum install gcc-c++ (上面已经做过了)

 

如果提示是否下载,输入y。

 

如果提示是否安装,输入y

 

 

 

  1. 步骤1:将Windows下下载的压缩文件上传到Linux下。通过secureCRT进行上传,步骤如下:

l alt + p

l put F:/redis-3.0.0.tar.gz

l

  1. 步骤2: 解压文件

tar -zxvf redis-3.0.0.tar.gz

linux+redis实战个人学习笔记(二)jdk、mysql等_第7张图片

  1. 步骤3: 编译redis (编译,将.c文件编译为.o文件)

l 进入解压文件夹,cd redis-3.0.0

l 执行make

linux+redis实战个人学习笔记(二)jdk、mysql等_第8张图片

1)如果没有安装gcc,编译将出现错误提示。(如果安装失败,必须删除文件夹,重写解压)

 

2)安装成功

 

 

  1. 步骤4: 安装

make PREFIX=/usr/local/redis install

llinux+redis实战个人学习笔记(二)jdk、mysql等_第9张图片

安装完后,在/usr/local/redis/bin下有几个可执行文件

redis-benchmark ----性能测试工具

redis-check-aof ----AOF文件修复工具

redis-check-dump ----RDB文件检查工具(快照持久化文件)

redis-cli ----命令行客户端

redis-server ----redis服务器启动命令

 

  1. 步骤5: copy文件

回到根目录的redis-3.0.0文件夹,把配置文件复制到redis目录

redis启动需要一个配置文件,可以修改端口号等信息。

cp redis.conf /usr/local/redis

linux+redis实战个人学习笔记(二)jdk、mysql等_第10张图片

如果没有配置文件redis也可以启动不过将启用默认配置这样不方便我们修改端口号等信息

 

 

 

 

  1. 前端启动:(了解)-无法部署集群

首先进入到 redis安装目录

cd /usr/local/redis 

然后进入到bin目录

./bin/redis-server  (开启redis的server)

linux+redis实战个人学习笔记(二)jdk、mysql等_第11张图片

linux+redis实战个人学习笔记(二)jdk、mysql等_第12张图片

服务端启动好了后,接下去启动客户端连接到服务端。操作redis

1、一样先进入到redis的目录

cd /usr/local/redis

然后

./bin/redis-cli  如下图

linux+redis实战个人学习笔记(二)jdk、mysql等_第13张图片

因为默认是6379的,如果其他端口的话 需要指定上端口号

./bin/redis-cli -p 6379

指定ip跟端口的连接

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

./bin/redis-cli -p 6379

运行客户端(默认连接本机6379端口):./bin/redis-cli    ctrl+C 退出客户端的连接

 

  1. Redis启动-后端模式
  2. 修改redis.conf配置文件, daemonize yes 以后端模式启动。

vim /usr/local/redis/redis.conf

linux+redis实战个人学习笔记(二)jdk、mysql等_第14张图片

  1. 启动时,指定配置文件

cd /usr/local/redis/

./bin/redis-server ./redis.conf   这边要多加载这个redis.conf配置文件

 

  1. Redis默认端口6379,通过当前服务进行查看

ps -ef | grep -i redis

 

redis的关闭:

  • 查询到PID,kill -9 pid  【断电,非正常关闭,一般不用,否则造成数据丢失】

②正常关闭  【正常关闭,数据保存】

./bin/redis-cli shutdown

 

3、redis数据类型【重点】

redis 使用的是键值对 保存数据。(map)

 

key:全部都是字符串

value:有五种数据类型

linux+redis实战个人学习笔记(二)jdk、mysql等_第15张图片

Key名:自定义,key名不要过长,否则影响使用效率

 

Key名不要太短,最好是有意义。

 

4、redis命令-String命令【重点】

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

 

二进制安全和数据安全是没有关系的。

MySQL-关系型数据库,二进制不安全。【乱码丢失数据】

linux+redis实战个人学习笔记(二)jdk、mysql等_第16张图片

 

Redis  二进制数据安全

linux+redis实战个人学习笔记(二)jdk、mysql等_第17张图片

 

 

赋值:相当于map.set

  1. set key value:设定key持有指定的字符串value,如果该key存在则进行覆盖操作。总是返回”OK”

  如果赋予相同的key,新的value会覆盖老的value

 

取值:相当于map.get

  1. get key:获取key的value。如果与该key关联的value不是String类型,redis将返回错误信息,因为get命令只能用于获取String value;如果该key不存在,返回(nil)

 

删除:

  1. del key :删除指定key

返回值是数字类型,表示删了几条数据

 

 

扩展:

  1. getset key value:先获取该key的值,然后在设置该key的值。
  2. incr key:将指定的key的value原子性的递增1.如果该key不存在,其初始值为0,在incr之后其值为1。如果value的值不能转成整型,如hello,该操作将执行失败并返回相应的错误信息。相当于 ++i
  3. decr key:将指定的key的value原子性的递减1.如果该key不存在,其初始值为0,在incr之后其值为-1。如果value的值不能转成整型,如hello,该操作将执行失败并返回相应的错误信息。相当于 --i

Incr和decr 只能对字符串是数字的 进行操作。

  1. append key value:拼凑字符串。如果该key存在,则在原有的value后追加该值;如果该key不存在,则重新创建一个key/value

 

 

String使用环境:

主要用于保存json格式的字符串

 

5、redis命令-hash(了解)

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

Hash  ----à   {username:”张三”,age:”18”,sex:”man”}------javaBean

Hash特点:占用的磁盘空间极少

 

 

 

赋值:

  1. hset key field value:为指定的key设定field/value对(键值对)。

  1. hmset key field value [field2 value2 ]:设置key中的多个filed/value

取值:

  1. hmget key filed1 filed2 ….:获取key中的多个filed的值

  1. hgetall key:获取key中的所有filed-vaule

 

删除:

删除单个字段

  1. del key :删除整个hash

 

扩展:

  1. hkeys key :获得所有的字段

  1. hvals key:获得所有的value

 

 

keys * 查询所有的key

6、Jedis(java操作redis数据库技术)【重点】

Redis有什么命令,Jedis就有什么方法。

 

 

防火墙设置:不然java会报连接超时 

开放6379端口

/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

保存配置

/etc/rc.d/init.d/iptables save

此时启动redis的服务就可以用java去访问

启动命令,后端启动

cd /usr/local/redis/    先到redis目录下

./bin/redis-server ./redis.conf    运行启动

Jedis连接池:

	/**
	 * 连接池方式连接
	 */

	public static Jedis demo2() {
		// 获得连接池对象
		JedisPoolConfig config = new JedisPoolConfig();
		// 设置连接数
		config.setMaxTotal(20);
		// 设置最大空闲连接数
		config.setMaxIdle(20);
		jedisPool = new JedisPool(config, "192.168.32.129", 6379);
		// 获得核心连接对象
		Jedis jedis = null;
		try {
			jedis = jedisPool.getResource();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return jedis;
	}

 

抽取连接池工具:

JedisUtils

package jedisDemo.Demo;

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

public class jedisUtil {
	private final static JedisPool POOL;

	// 初始化操作
	static {
		// 获得连接池对象
		JedisPoolConfig config = new JedisPoolConfig();
		// 设置连接数(不是必须要设置)
		config.setMaxTotal(20);
		// 设置最大空闲连接数(不是必须要设置)
		config.setMaxIdle(20);
		POOL = new JedisPool(config, "192.168.32.129", 6379);
	}

	/**
	 * 从连接池中获取连接对象返回
	 * 
	 * @return
	 */
	public static Jedis getJedis() {
		return POOL.getResource();
	}
}

以后直接调用该类的getJeis(redis的Ip连接的配置后续在说)

 

你可能感兴趣的:(笔记)