目录
准备工作:安装依赖
Linux系统上安装JDK:
Linux系统上安装MySQL:
Linux系统上安装tomcat:
redis简述及安装
关系型数据库(SQL):
非关系型数据库(NOSQL):
Redis使用环境:
redis安装:
3、redis数据类型【重点】
4、redis命令-String命令【重点】
5、redis命令-hash(了解)
6、Jedis(java操作redis数据库技术)【重点】
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
上面的命令如果报
那么就在命令后加上 --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
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 |
|
|
安装步骤:
卸载OpenJDK
执行命令查看:
如: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:
解压tar.gz
首先需要安装依赖:【1~5分钟】上面已经安装好了
配置环境变量:
编辑此文件: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
安装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 。
作用是登陆时跳过登陆认证,换句话说就是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了
安装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
Mysql,oracle
特点:数据和数据之间,表和字段之间,表和表之间是存在关系的
例如:部门表 001部分, 员工表 001
用户表,用户名、密码
分类表 和 商品表, 一对多关系。
优点:①数据之间有关系,进行数据的增删改查时非常方便的。
②关系型数据库 有事务操作。 保证数据的完整性
缺点:1、因为数据和数据之间有关系的,关系是由底层大量算法保证
大量算法会拉低系统运行速度
大量算法会消耗系统资源
2、海量数据的增删改查时会显得无能为力。
很可能宕机
3、海量数据环境下对数据表进行维护/扩展,也会变得无能为力
update product set cname = ‘手机数码’;//修改所有数据
把商品表的cname字段,由varchar(64), char(100)
适合处理一般量级数据,安全。
钱
为了处理海量数据,需要将关系型数据库的关系 去掉。
非关系型数据库设计之初 是为了替代 关系型数据库的
Redis
优点:1、海量数据的增删改查,非常轻松应对
2、海量数据的维护非常轻松。
缺点:1、数据和数据之间没有关系,所以不能一目了然
2、非关系型数据库,没有关系,没有强大的事务保证数据的 完整和安全
适合处理海量数据,效率。不一定安全
奥运健儿奖牌总数
关系型数据库+非关系型数据库 ====》项目
重要数据 海量操作数据,不重要
1、关系型数据库的缓存存在
2、可以做任务队列
3、大量数据运算
4、排行榜
Redis非常擅长做大量数据的排行榜
redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境。如果没有gcc环境,需要安装gcc:(环境已经导入完成)
yum install gcc-c++ (上面已经做过了)
如果提示是否下载,输入y。
如果提示是否安装,输入y
l alt + p
l put F:/redis-3.0.0.tar.gz
l
tar -zxvf redis-3.0.0.tar.gz
l 进入解压文件夹,cd redis-3.0.0
l 执行make
1)如果没有安装gcc,编译将出现错误提示。(如果安装失败,必须删除文件夹,重写解压)
2)安装成功
make PREFIX=/usr/local/redis install
安装完后,在/usr/local/redis/bin下有几个可执行文件
redis-benchmark ----性能测试工具
redis-check-aof ----AOF文件修复工具
redis-check-dump ----RDB文件检查工具(快照持久化文件)
redis-cli ----命令行客户端
redis-server ----redis服务器启动命令
回到根目录的redis-3.0.0文件夹,把配置文件复制到redis目录
redis启动需要一个配置文件,可以修改端口号等信息。
cp redis.conf /usr/local/redis
注:如果没有配置文件redis也可以启动,不过将启用默认配置,这样不方便我们修改端口号等信息
首先进入到 redis安装目录
cd /usr/local/redis
然后进入到bin目录
./bin/redis-server (开启redis的server)
服务端启动好了后,接下去启动客户端连接到服务端。操作redis
1、一样先进入到redis的目录
cd /usr/local/redis
然后
./bin/redis-cli 如下图
因为默认是6379的,如果其他端口的话 需要指定上端口号
./bin/redis-cli -p 6379
指定ip跟端口的连接
redis-cli -h ip地址 -p 端口
./bin/redis-cli -p 6379
运行客户端(默认连接本机6379端口):./bin/redis-cli ctrl+C 退出客户端的连接
vim /usr/local/redis/redis.conf
cd /usr/local/redis/
./bin/redis-server ./redis.conf 这边要多加载这个redis.conf配置文件
ps -ef | grep -i redis
redis的关闭:
②正常关闭 【正常关闭,数据保存】
./bin/redis-cli shutdown
redis 使用的是键值对 保存数据。(map)
key:全部都是字符串
value:有五种数据类型
Key名:自定义,key名不要过长,否则影响使用效率
Key名不要太短,最好是有意义。
字符串类型是Redis中最为基础、常用的数据存储类型,字符串在Redis中是二进制安全的,这便意味着该类型存入和获取的数据相同。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。
二进制安全和数据安全是没有关系的。
MySQL-关系型数据库,二进制不安全。【乱码丢失数据】
Redis 二进制数据安全
赋值:相当于map.set
如果赋予相同的key,新的value会覆盖老的value
取值:相当于map.get
删除:
返回值是数字类型,表示删了几条数据
扩展:
Incr和decr 只能对字符串是数字的 进行操作。
String使用环境:
主要用于保存json格式的字符串
Redis中的Hash类型可以看成具有String Key和String Value的map容器。所以该类型非常适合于存储值对象的信息。如Username、Password和Age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存储4294967295个键值对。
Hash ----à {username:”张三”,age:”18”,sex:”man”}------javaBean
Hash特点:占用的磁盘空间极少
赋值:
取值:
删除:
删除单个字段
扩展:
keys * 查询所有的key
Redis有什么命令,Jedis就有什么方法。
开放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连接的配置后续在说)