Day47筆記Linux+redis入門 Day47 知識講解:Jedis 1、Linux上jdk,mysql,tomcat安裝(看著文檔安裝) 準備工作: 因為JDK,TOMCAT,MYSQL的安裝過程中需要從網上下載部分支持包才可以繼續,所以要求同學們提前安裝下載好依賴 yum install ...
Day47筆記Linux+redis入門
Day47 知識講解:Jedis
1、Linux上jdk,mysql,tomcat安裝(看著文檔安裝)
準備工作:
因為JDK,TOMCAT,MYSQL的安裝過程中需要從網上下載部分支持包才可以繼續,所以要求同學們提前安裝下載好依賴
yum install glibc.i686
yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6
yum updatelibstdc++-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 |
|
|
Linux操作系統有兩大程式命令:
rpm相當於windows的添加\卸載程式。只能操作Linux本地的程式。
卸載:rpm -e--nodeps需要卸載程式名
查看:rpm -qa
安裝包的安裝:rpm -ivh需要安裝的程式名
安裝包:*.rpm------相當於windows *.exe
有些程式,存在於網路上
yum相當於聯網版的rpm命令。從網路上進行程式的安裝、更新
網路安裝:yum install xxxxx
下載到Linux本地變為rpm程式包,執行rpm安裝
網路更新:yum updatexxxxx
下載到Linux本地然後再進行更新操作
Linux系統上安裝JDK:
安裝步驟:
卸載OpenJDK
執行命令查看:
l rpm –qa | grep java
l 卸載OPENJDK
rpm -e --nodepsjava-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686
rpm -e --nodepsjava-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.i686
創建JDK的安裝路徑:
在/usr/local/創建文件夾java目錄
mkdir -p /usr/local/java
上傳安裝文件到linux:
l cd ~
l ll
解壓tar.gz
首先需要安裝依賴:【1~5分鐘】
l yum install glibc.i686
l 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
重新載入配置文件:【否則環境變數不會重新執行】
source /etc/profile
Linux系統上安裝MySQL:
安裝MySQL:
- mysql安裝:初始化本地登錄密碼
- 開放防火牆3306埠
- 賦予root用戶遠程登錄許可權,設置遠程登錄密碼
卸載自帶mysql:
查詢mysql的安裝情況
rpm -qa | grep mysql –-color
卸載原生的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 updatelibstdc++-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:
加入到系統服務:
chkconfig --add mysql
自動啟動:
chkconfigmysql on
開啟遠程服務,並且設置遠程登錄密碼
登錄mysql:
//賦予root用戶所有許可權,遠程登錄密碼是123456
grant all privileges on *.* to 'root' @'%' identified by '123456';
flush privileges;
設置Linux的防火牆:
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save
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 --dport8080 -j ACCEPT
保存配置
/etc/rc.d/init.d/iptables save
啟動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
2、redis簡述及安裝(看著文檔安裝)
SQL:重型坦克
MySQL/oracle:關係型資料庫。數據和數據之間/表和表之間存在關係。
人員表-----身份證表中的數據一對一
分類表---商品表中的數據一對多
人員表---許可權表中的數據多對多
優點:①表設計/數據的使用和現實生活息息相關
②表數據的增刪改查操作比較簡單
③保證數據的完整/安全
缺點:①占用大量的記憶體資源(偽表、關係演算法)
②執行效率不高
③對海量數據/高併發請求無能為力
④海量數據時,表結構的維護無法進行。
目前移動互聯網時代-----》物聯網時代
信息量-------MB-GB
只有底盤高速跑車
非關係型資料庫:NOSQL (不僅僅是SQL)
特點:去掉了數據和數據之間關係。
Redis 2009年。
一秒鐘可以輕鬆讀寫十幾萬數據量
優點:①輕鬆處理海量數據/高併發請求
②無論數據量多少,都可以對資料庫進行維護
③執行效率遠遠高於關係型資料庫
缺點:①數據和數據之間不存在關係,和現實生活嚴重脫節
②數據不再有完整性和安全性
關係型資料庫和非關係型資料庫不是相互替代的關係。
重要數據:關係型資料庫(錢)
不重要海量數據(高併發請求):非關係型資料庫
redis安裝:
redis是C語言開發,安裝redis需要先將官網下載的源碼進行編譯,編譯依賴gcc環境。如果沒有gcc環境,需要安裝gcc:
yum install gcc-c++
如果提示是否下載,輸入y。
如果提示是否安裝,輸入y
l 步驟1:將Windows下下載的壓縮文件上傳到Linux下。通過secureCRT進行上傳,步驟如下:
l alt + p
l put F:/redis-3.0.0.tar.gz
l
l 步驟2: 解壓文件
l tar –zxvf redis-3.0.0.tar.gz
l 步驟3: 編譯redis (編譯,將.c文件編譯為.o文件)
l 進入解壓文件夾,cd redis-3.0.0
l 執行make
1)如果沒有安裝gcc,編譯將出現錯誤提示。(如果安裝失敗,必須刪除文件夾,重寫解壓)
2)安裝成功
l 步驟4: 安裝
將redis安裝到指定目錄中/usr/local/redis。
PREFIX必須是大寫
make PREFIX=/usr/local/redis install
l
安裝完後,在/usr/local/redis/bin下有幾個可執行文件
redis-benchmark ----性能測試工具
redis-check-aof ----AOF文件修複工具
redis-check-dump ----RDB文件檢查工具(快照持久化文件)
redis-cli ----命令行客戶端
redis-server ----redis伺服器啟動命令
l 步驟5: copy文件
redis啟動需要一個配置文件,可以修改埠號等信息。
Cp redis.conf /usr/local/redis
註:如果沒有配置文件redis也可以啟動,不過將啟用預設配置,
這樣不方便我們修改埠號等信息,無法進行後期集群的配置
無論前、後端啟動,都要先進入redis程式的根目錄:/usr/local/redis
前端啟動:(瞭解)-無法部署集群
啟動redis,客戶端連接:連接6379埠
redis-cli -h ip地址 -p 埠
./bin/redis-cli -p 6379
./bin/redis-cli 開啟客戶端 可以操作redis
客戶端/伺服器端關閉:ctrl+c
Redis啟動-後端模式
l 修改redis.conf配置文件,daemonize yes 以後端模式啟動。
vim /usr/local/redis/redis.conf
l 啟動時,指定配置文件
cd /usr/local/redis/
./bin/redis-server ./redis.conf
l Redis預設埠6379,通過當前服務進行查看
ps-ef | grep –I redis
後端模式可以修改埠號,預設6379. 6379,6380,6381
Redis伺服器的關閉:
① 查詢到PID,kill -9 pid【斷電,非正常關閉,一般不用,否則造成數據丟失】
②正常關閉【正常關閉,數據保存】
./bin/redis-cli shutdown
3、redis數據類型【重點】
Redis資料庫----非關係型資料庫----存儲方式(key----value)
Redis資料庫-----HashMap<String,Object>
Value的數據類型:
1、 字元串類型對應Java中的String。 512MB
存儲大量文本信息,作為項目的緩存使用。
2、 散列類型(瞭解)相當於Java中的JavaBean,Map
幾乎可以被String+json替代
3、 列表類型相當於Java中LinkedList(鏈表)。
數據增刪效率極高。
用戶列表,VIP列表
4、 集合類型相當於Java中的set集合
set<String>
無序、唯一。
VIP列表,交集、並集、差集運算
5、 有序集合類型。有序的set集合。做排行榜
4、redis命令-String命令【重點】
字元串類型是Redis中最為基礎的數據存儲類型,它在Redis中是二進位安全的,這便意味著該類型存入和獲取的數據相同。在Redis中字元串類型的Value最多可以容納的數據長度是512M。
MySQL:
Redis:
數據增刪改查:
賦值:增改
取值:查
刪值:刪
l 賦值:
set key value:設定key持有指定的字元串value,如果該key存在則進行覆蓋操作。總是返回”OK”
append key value:拼湊字元串。如果該key存在,則在原有的value後追加該值;如果該key不存在,則重新創建一個key/value
以上兩種方法的區別:
在key—value存在時。Set覆蓋,append末尾的追加
l 取值:
get key:獲取key的value。如果與該key關聯的value不是String類型,redis將返回錯誤信息,因為get命令只能用於獲取String value;如果該key不存在,返回(nil)。 nil就是Java中的null
l 刪除:
del key :刪除指定key.【通用】返回int類型,刪除了幾條數據
keys *查詢存儲的所有鍵值對---鍵名(不論值類型)
5、redis命令-hash(瞭解)
使用環境:向某個value中保存一個大量數據的map集合,占用極少的空間。
l hmset key field value [field2 value2 …]:設置key中的多個filed/value
l hgetall key:獲取key中的所有filed-vaule
l hmget key fileds:獲取key中的多個filed的值
6、Jedis(java操作redis資料庫技術)【明日重點】
Mysql由JDBC 進行連接JAVA。
Jedis------使用Java操作redis資料庫。
Redis不僅是使用命令來操作,現在基本上主流的語言都有客戶端支持,比如java、C、C#、C++、php、Node.js、Go等。
在官方網站里列一些Java的客戶端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推薦使用Jedis和Redisson。在企業中用的最多的就是Jedis,下麵我們就重點學習下Jedis。
導入jar包
Jedis使用特點:redis中有什麼命令,Jedis中就有什麼方法對應。
Redis的命令名,Jedis的方法名
外界使用Redis,必須開放6379
開放6379埠
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
保存配置
/etc/rc.d/init.d/iptables save
Jedis的單實例:
Jedis池:
Jedis工具: