CentOS 7 Redis安裝箭跳,基本使用

NoSQL(Not Only SQL)

NoSQL是一項全新的數(shù)據(jù)庫理念,泛指非關系型的數(shù)據(jù)庫潭千。
現(xiàn)在的互聯(lián)網(wǎng)項目谱姓,對數(shù)據(jù)庫高并發(fā)的讀寫,海量數(shù)據(jù)的高效率存儲和訪問刨晴,擴展要求高屉来。
網(wǎng)站也需要根據(jù)用戶個性化信息來實時刷新產生動態(tài)頁面和提供動態(tài)信息,傳統(tǒng)的方式反復操作關系型數(shù)據(jù)庫狈癞,性能消耗大茄靠,速度慢,因此出現(xiàn)了NoSQL蝶桶。

NoSQL:在大數(shù)據(jù)存取上具備關系型數(shù)據(jù)庫無法比擬的性能優(yōu)勢慨绳。

特點
1. 易擴展
   數(shù)據(jù)之間無關系,導致易擴展真竖。

2. 大數(shù)據(jù)量脐雪,高性能
   NoSQL數(shù)據(jù)庫具有非常高的讀寫性能,尤其在大量數(shù)據(jù)下恢共。

3.  靈活的數(shù)據(jù)模型
    NoSQL無需事先為要存儲的數(shù)據(jù)建立字段战秋,隨時可以存儲自定義的數(shù)據(jù)格式。

4.  高可用
    NoSQL在不太影響性能的情況讨韭,就可以方便的實現(xiàn)高可用的架構脂信。
NoSQL數(shù)據(jù)庫的四大分類
鍵值對存儲數(shù)據(jù)庫
列式存儲數(shù)據(jù)庫
文檔類型數(shù)據(jù)庫
圖形數(shù)據(jù)庫

NoSQL主流產品:Redis
Redis安裝配置

Redis是C語言開發(fā)的一個開源的高性能鍵值對數(shù)據(jù)庫,通過提供多種鍵值數(shù)據(jù)類型透硝,適應不同場景下的存儲需求吉嚣。

應用場景
  緩存(數(shù)據(jù)查詢,短連接蹬铺,新聞內容尝哆,商品內容)
  聊天在線好友列表
  任務隊列(秒殺,搶購甜攀,12306)
  應用排行榜
  網(wǎng)站訪問統(tǒng)計
  數(shù)據(jù)過期處理

主要還是應用于數(shù)據(jù)實時刷新
Linux CentOS 7安裝Redis
1.  安裝gcc環(huán)境
    redis是用 C 開發(fā)的秋泄,安裝redis需要先將官網(wǎng)下載的源碼進行編譯琐馆,編譯依賴gcc環(huán)境。

yum install gcc-c++
2.  下載Redis壓縮包tar.gz

官網(wǎng)下載Redis壓縮包

3.  將Redis上傳到 usr/local 下恒序,解壓縮
4.  進入redis文件內瘦麸,進行make編譯

    cd redis-4.0.11.tar.gz
    make
5.  編譯結束后,進行安裝
    make PREFIX=/usr/local/redis install
啟動Redis
1.  前端啟動模式 
      直接啟動安裝好的redis/bin/redis-server
      /usr/local/redis/bin/redis-server

默認開啟的是前端模式
端口:6379
2. 后端啟動
1.  從redis的源碼目錄(既解壓目錄)中復制redis.conf到redis的安裝目錄/bin文件夾下歧胁。 

    cd usr/local/redis-4.0.11
    cp redis.conf ../redis/bin
2.  修改配置文件

    修改:daemonizei yes
進入拷貝的配置文件
修改為yes
3.  啟動
    在redis/bin下啟動: ./redis-server redis.conf
    進入客戶端驗證:./redis-cli
    exit退出客戶端
4.  關閉后端啟動
    ./redis-cli shutdown
Redis遠程端口配置
1.  開啟遠程端口
    要想用代碼訪問Linux下的Redis就需要開啟6379端口

1.  修改redis.conf
    bind 0.0.0.0
    表示不限制訪問來源地址滋饲,如需限制,直接改為相應IP

2.  開啟防火墻6379端口
    在CentOS 7 中防火墻由firewalld來管理喊巍,啟用區(qū)域端口和協(xié)議組合

    啟用命令:
    1.  firewall-cmd --zone=public --add-port=6379/tcp --permanent
    --permanent永久生效屠缭,沒有此參數(shù)重啟后失效

    2.  重新載入
    firewall-cmd --reload

    3.  查看端口是否開啟
    firewall-cmd --zone= public --query-port=6379/tcp

補充:刪除
firewall-cmd --zone= public --remove-port=6379/tcp --permanent
IDEA配置
1.  如同MySQL一樣,Redis也需要數(shù)據(jù)庫的驅動Jar崭参。
    jedis-2.7.0.jar
    commons-pool2-2.3.jar

Redis基本使用

Redis是一種高級的key-value的存儲系統(tǒng)呵曹,支持五種數(shù)據(jù)類型。

1.  字符串型 String
    String在Redis中是二進制安全的何暮,這意味著該類型可以接受任何格式的數(shù)據(jù)奄喂。
    value最多可以容納的數(shù)據(jù)長度是512M。

提供的操作
set key value
get key
getset key value:先獲取該key的值海洼,然后在設置該key的值跨新。
del key

append key value:如果該key存在,則在原有的value后追加該值坏逢,如果不存在則創(chuàng)建一個key-value域帐。

incr key
將指定的key的value原子性的遞增1
如果該key不存在,其初始值為0词疼,在incr之后其值為1。
如果value的值不能轉成整型帘腹,如hello贰盗,該操作將執(zhí)行失敗并返回相應的錯誤信息。

decr key:遞減
2.  字符串列表 Lists
    List類型是按照插入順序排序的字符串鏈表阳欲,可以操控頭尾插入數(shù)據(jù)舵盈。
    在插入時,如果該鍵并不存在球化,Redis將為該鍵創(chuàng)建一個新的鏈表秽晚。
    如果元素都被移除,該鏈表也會被刪除筒愚。

添加
lpush key value1 value2...:在指定的key所關聯(lián)的list的頭部插入所有的values
rpush key value1 value2…:在該list的尾部添加元素

lrange key start end
獲取鏈表中從start到end的元素的值
start赴蝇、end可為負數(shù),若為-1則表示鏈表尾部的元素巢掺,-2則表示倒數(shù)第二個句伶,依次類推劲蜻。

lpushx key value:在指定的key所關聯(lián)的list的頭部插入value。
rpushx key value:在該list的尾部添加元素

lpop key:返回并彈出指定的key關聯(lián)的鏈表中的第一個元素考余,即頭部元素先嬉。
rpop key:從尾部彈出元素。

rpoplpush resource destination:將鏈表中的尾部元素彈出并添加到頭部
llen key:返回指定的key關聯(lián)的鏈表中的元素的數(shù)量楚堤。

lset key index value:
設置鏈表中的index的腳標的元素值疫蔓,0代表鏈表的頭元素,-1代表鏈表的尾元素身冬。


刪除
lrem key count value:刪除count個值為value的元素
如果count大于0衅胀,從頭向尾遍歷并刪除count個值為value的元素
如果count小于0,則從尾向頭遍歷并刪除
如果count等于0吏恭,則刪除鏈表中所有等于value的元素
3.  字符串集合 Sets
    在Redis中拗小,我們可以將Set類型看作為沒有排序不允許重復的字符集合。

sadd key value1樱哼、value2…:向set中添加數(shù)據(jù)哀九,如果該key的值已有則不會重復添加
smembers key:獲取set中所有的成員
scard key:獲取set中成員的數(shù)量

sismember key member:
判斷參數(shù)中指定的成員是否在該set中,
1表示存在
0表示不存在或者該key本身就不存在

srem key member1搅幅、member2…:刪除set中指定的成員

srandmember key:隨機返回set中的一個成員
sdiff sdiff key1 key2:返回key1與key2中相差的成員阅束,而且與key的順序有關。即返回差集茄唐。

sdiffstore destination key1 key2:將key1息裸、key2相差的成員存儲在destination上。

sinter key[key1,key2…]:返回交集沪编。
sinterstore destination key1 key2:將返回的交集存儲在destination上呼盆。
List,Set結構
4.  有序字符串集合 Sorted sets
    Sorted-Sets和Sets類型極為相似蚁廓,都是字符串的集合访圃,都不允許重復。
    差別是Sorted-Sets中的每一個成員都會有一個分數(shù)(score)與之關聯(lián)相嵌。
    Redis正是通過分數(shù)來為集合中的成員進行從小到大的排序腿时。
    分數(shù)(score)是可以重復的。

zadd key score member score2 member2 … 
將所有成員以及該成員的分數(shù)存放到sorted-set中

zcard key:獲取集合中的成員數(shù)量
zcount key min max:獲取分數(shù)在[min,max]之間的成員
zincrby key increment member:設置指定成員的增加的分數(shù)饭宾。
zrem key member[member…]:移除集合中指定的成員批糟,可以指定多個成員。
5.  哈希類型 Hashs
    Redis中的Hashes類型可以看成具有String Key和String Value的map容器看铆。
    適合于存儲值對象的信息徽鼎,如:Username、Password和Age等。

hset key field value:為指定的key設定field/value纬傲。
hget key field:返回指定的key中的field的值满败。
hgetall key:獲取key中的所有filed-vaule。
hdel key field :刪除數(shù)據(jù)
Hashs結構
Jedis
public class RedisTest {
    @Test
    public void test() {
        //連接池配置
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxIdle(30);//最大閑置個數(shù)
        config.setMinIdle(10);//最小閑置個數(shù)
        config.setMaxTotal(50);//最大連接數(shù)

        //創(chuàng)建連接池
        JedisPool pool = new JedisPool(config, "192.168.1.105", 6379);

        //獲取資源
        Jedis jedis = pool.getResource();
        jedis.set("userName","Demo");
        jedis.get("userName");

        //關閉資源
        jedis.close();
        pool.close();
    }
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末叹括,一起剝皮案震驚了整個濱河市算墨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌汁雷,老刑警劉巖净嘀,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異侠讯,居然都是意外死亡挖藏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門厢漩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來膜眠,“玉大人,你說我怎么就攤上這事溜嗜∠颍” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵炸宵,是天一觀的道長辟躏。 經常有香客問我,道長土全,這世上最難降的妖魔是什么捎琐? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮裹匙,結果婚禮上瑞凑,老公的妹妹穿的比我還像新娘。我一直安慰自己概页,他們只是感情好籽御,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绰沥,像睡著了一般篱蝇。 火紅的嫁衣襯著肌膚如雪贺待。 梳的紋絲不亂的頭發(fā)上徽曲,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機與錄音麸塞,去河邊找鬼秃臣。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的奥此。 我是一名探鬼主播弧哎,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼稚虎!你這毒婦竟也來了撤嫩?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蠢终,失蹤者是張志新(化名)和其女友劉穎序攘,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寻拂,經...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡程奠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了祭钉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞄沙。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖慌核,靈堂內的尸體忽然破棺而出距境,到底是詐尸還是另有隱情,我是刑警寧澤遂铡,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布肮疗,位于F島的核電站,受9級特大地震影響扒接,放射性物質發(fā)生泄漏伪货。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一钾怔、第九天 我趴在偏房一處隱蔽的房頂上張望碱呼。 院中可真熱鬧,春花似錦宗侦、人聲如沸愚臀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姑裂。三九已至,卻和暖如春男旗,著一層夾襖步出監(jiān)牢的瞬間舶斧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工察皇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留茴厉,地道東北人泽台。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像矾缓,于是被迫代替她去往敵國和親怀酷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內容