初學Redis,redis配置、終端操作、界面操作、java連接redis。

      網友投稿 1028 2022-05-25

      1、Redis介紹

      1.1、什么是NoSql

      為了解決高并發、高可用、高可擴展。大數據存儲等一些列問

      提的產生的數據庫結局方案。

      NoSql,叫做非關系型數據庫,他的全名Not only sql。它不能

      替代關系型數據庫,只能作為關系型數據庫的一個良好補充。

      1.2 什么是redis

      redis是使用c語言開發的一個高性能鍵值數據庫。redis可以

      通過一些鍵值類型來存儲數據。

      String字符串類型

      map散列類型

      list列表類型

      set集合類型

      sortedset 有序集合類型

      1.3 redis啟動

      三個文件:

      將前兩個解壓到D盤redis目錄下

      通過在終端cd /d? 路徑 找到redis解壓目錄

      在解壓目錄當中執行? redis-server.exe redis.conf

      redis默認自帶16個子庫,默認使用db0

      切換子庫命令:select index

      1.4鏈接redis

      1、通過終端在redis路徑下執行redis-cli.exe連接到redis(如上圖)

      2、通過圖形界面連接到redis

      安裝上面的第三個文件

      3、jedis客戶端

      支持java語言連接(后面寫)

      1.5 redis的使用

      終端命令:

      賦值:

      set? key? value

      取值:

      get? key

      取值并賦值

      getset key value

      設置/獲取多個鍵值

      mset key value key value key value...

      mget key key key key ...

      刪除

      del key

      數值的增減

      遞增數字:當存儲的字符串是整數時,redis提供了一個實用的命令

      incr,其作用是讓當前鍵值遞增,并返回遞增后的值。

      incr key

      增加指定的整數

      incrby key increment

      遞減數值

      decr num

      遞減指定整數:

      decrby num decrement

      2、其他命令

      1、向尾部追加值

      append的作用是向鍵值的末尾追加value.如果鍵不存在則將

      該鍵的值設置為value.

      append str1 "world!"

      2、獲取字符串長度

      strlen命令返回值得長度,如果鍵不存在則返回0

      strlen key

      3、自增主鍵

      商品編號、訂單采用string的遞增數字特性生成

      定義商品編號key: items:id

      incr items:id

      4、賦值hset命令,不區分插入和更新操作,當執行插入操作時,

      hset命令返回1,當執行更新操作時返回0

      一次只能設置一個字段

      hset key filed value

      一次可以設置多個字段值

      hmset key1 filed1 value1? filed2 vlaue2 ...

      hmset user age 20 username lisi

      當字段不存在時賦值,類似hset,區別在于如果字段存在,該命令

      不執行任何操作

      hsetnx key file value

      hsetnx user age 30

      如果user中沒有age字段則設置為30,否則不執行任何操作

      hsetnx user salary 20000

      5、取值

      一次只能獲取一個字段值

      hget key filed

      一次獲取多個字段值

      hmget key filed1 filed2...

      一次獲取所有字段

      hgetall key

      6、刪除字段

      可以刪除一個或多個字段,返回值是被刪除的字段個數

      hdel key filed...

      7、增加數字

      hincrby key filed increment

      8、判斷字段是否存在

      hexists key filed

      返回1說明該字段存在,0說明該字段不存在

      9、只獲取字段名或字段值

      hkeys key? :查看key對象當中的所有字段名

      hvals key? :查看key對象當中的所有字段值

      10、獲取字段數量

      hlen key :查看key對象當中的屬性數量

      應用:

      1、存儲商品信息

      商品字段:商品id、商品名稱、商品描述、商品庫存、商品評價

      hmset items:1001 id 3 name apple price 999.99

      獲取商品信息

      hget items:1001 id 查詢該條商品的指定列

      hgetall items:1001 查詢該條商品的所有信息

      List:

      ArrayList和linkedList的區別

      ArrayList是使用數組存儲數據,特點:查詢快、增刪慢

      LinkedList是使用雙向鏈表存儲數據,特點:增刪快,查詢慢

      但是查詢鏈表兩端數據比較快

      redis的list是采用鏈表來存儲的,所以對于redis的list數據

      類型的操作,是操作List的兩端數據來操作的

      1、向列表兩端增加元素

      向列表左邊增加元素

      lpush key value ...

      向列表右側增加元素

      rpush key value ...

      2、 查看列表

      lrange命令是列表類型最常用的命令之一,獲取列表中某一片段,返回???? start、stop之間的所有元素(包含兩端元素),索引從0開始,索引可以?? ?是負數,如:'-1'代表最后邊的一個元素

      lrange key start stop

      3、從列表兩端彈出元素

      LPOP命令從列表左邊彈出一個元素,會分兩步完成

      第一步:是將列表左邊的元素從列表中刪除

      第二步是返回被移除的元素值

      LPOP key

      RPOP key

      4、獲取列表中的元素個數

      llen key

      5、刪除列表中指定的值

      LREM 命令會刪除列表中前count個值為value的元素,返回實際刪除

      元素個數。根據count值得不同,該命令執行方式會有所不同

      當count>0時,lrem 會從列表左側開始刪除

      當count<0時,lrem 會從列表后邊開始刪除

      當count=0時,lrem 刪除所有值為value元素

      lrem key count value

      6、獲取/設置指定索引的元素值

      LINDEX key index

      設置指定索引的元素值

      lset list:1 1 5

      命令請自行測試,貼出我測試的:

      D:\redis>redis-cli.exe

      127.0.0.1:6379> SELECT 7

      OK

      127.0.0.1:6379[7]> set str 123

      OK

      127.0.0.1:6379[7]> get str

      "123"

      127.0.0.1:6379[7]> getset str2 12345

      (nil)

      127.0.0.1:6379[7]> get str2

      "12345"

      127.0.0.1:6379[7]> mset str3 fuzui str3 wwze

      OK

      127.0.0.1:6379[7]> mget str3 str3

      1) "wwze"

      2) "wwze"

      127.0.0.1:6379[7]> del str3

      (integer) 1

      127.0.0.1:6379[7]> del str

      (integer) 1

      127.0.0.1:6379[7]> incr num

      (integer) 1

      127.0.0.1:6379[7]> incr num

      (integer) 2

      127.0.0.1:6379[7]> incrby num 3

      (integer) 5

      127.0.0.1:6379[7]> incr num

      (integer) 6

      127.0.0.1:6379[7]> incrby num 3

      (integer) 9

      127.0.0.1:6379[7]> decr num

      (integer) 8

      127.0.0.1:6379[7]> decrby num 4

      (integer) 4

      127.0.0.1:6379[7]> append str2 world

      (integer) 10

      127.0.0.1:6379[7]> get str2

      "12345world"

      127.0.0.1:6379[7]> strlen str2

      (integer) 10

      127.0.0.1:6379[7]> strlen dd

      (integer) 0

      127.0.0.1:6379[7]> append str1 hello

      (integer) 5

      127.0.0.1:6379[7]> get str1

      "hello"

      127.0.0.1:6379[7]> incr items:id

      (integer) 1

      127.0.0.1:6379[7]> incr items:id

      (integer) 2

      127.0.0.1:6379[7]> incr items:id

      (integer) 3

      127.0.0.1:6379[7]> hset user username wangze

      (integer) 1

      127.0.0.1:6379[7]> hmset manager name fuzui sex female

      OK

      127.0.0.1:6379[7]> hsetnx user username fuzui

      (integer) 0

      127.0.0.1:6379[7]> hsetnx user age 22

      (integer) 1

      127.0.0.1:6379[7]> hget user username

      "wangze"

      127.0.0.1:6379[7]> hget user age

      "22"

      127.0.0.1:6379[7]> hmget user username age

      1) "wangze"

      2) "22"

      127.0.0.1:6379[7]> hgetall user

      1) "username"

      2) "wangze"

      3) "age"

      4) "22"

      127.0.0.1:6379[7]> hdel user age

      (integer) 1

      127.0.0.1:6379[7]> hgetall user

      1) "username"

      2) "wangze"

      127.0.0.1:6379[7]> hset user age 22

      (integer) 1

      127.0.0.1:6379[7]> hgetall user

      1) "username"

      2) "wangze"

      3) "age"

      4) "22"

      127.0.0.1:6379[7]> hset user salary 18000

      (integer) 1

      127.0.0.1:6379[7]> hgetall user

      1) "username"

      2) "wangze"

      3) "age"

      4) "22"

      5) "salary"

      6) "18000"

      127.0.0.1:6379[7]> hincrby user age 2

      (integer) 24

      127.0.0.1:6379[7]> hincrby user username 2

      (error) ERR hash value is not an integer

      127.0.0.1:6379[7]> hexists user age

      (integer) 1

      127.0.0.1:6379[7]> hexists user class

      (integer) 0

      127.0.0.1:6379[7]> hkeys user

      1) "username"

      2) "age"

      3) "salary"

      127.0.0.1:6379[7]> hvals user

      1) "wangze"

      2) "24"

      3) "18000"

      127.0.0.1:6379[7]> hlen user

      (integer) 3

      127.0.0.1:6379[7]> hmset items:1001 id 3 name a[[;e price 1399

      OK

      127.0.0.1:6379[7]> hget items:1001 id

      "3"

      127.0.0.1:6379[7]> hgetall items:1001

      1) "id"

      2) "3"

      3) "name"

      4) "a[[;e"

      5) "price"

      6) "1399"

      127.0.0.1:6379[7]> hmset items:1001 name apple

      OK

      127.0.0.1:6379[7]> hgetall items:1001

      1) "id"

      2) "3"

      3) "name"

      4) "apple"

      5) "price"

      6) "1399"

      127.0.0.1:6379[7]> lpush list:1 1 2 3 4 5

      (integer) 5

      127.0.0.1:6379[7]> rpush list:1 a b c d e

      (integer) 10

      127.0.0.1:6379[7]> lrange list:1 0 7

      1) "5"

      2) "4"

      3) "3"

      4) "2"

      5) "1"

      6) "a"

      7) "b"

      8) "c"

      127.0.0.1:6379[7]> lrange list:1 0 -2

      1) "5"

      2) "4"

      3) "3"

      4) "2"

      5) "1"

      6) "a"

      7) "b"

      8) "c"

      9) "d"

      127.0.0.1:6379[7]> lpop list:1 0 1

      (error) ERR wrong number of arguments for 'lpop' command

      127.0.0.1:6379[7]> lpop list:1

      "5"

      127.0.0.1:6379[7]> lpop list:1

      "4"

      127.0.0.1:6379[7]> rpop ;list:1

      (nil)

      127.0.0.1:6379[7]> lrange list:1 0 -1

      1) "3"

      2) "2"

      3) "1"

      4) "a"

      5) "b"

      6) "c"

      7) "d"

      8) "e"

      127.0.0.1:6379[7]> rpop list:1

      "e"

      127.0.0.1:6379[7]> llen list:1

      (integer) 7

      127.0.0.1:6379[7]> lrem list:1 2 2

      (integer) 1

      127.0.0.1:6379[7]> lrangger list:1 0 -1

      (error) ERR unknown command 'lrangger'

      127.0.0.1:6379[7]> lrange list:1 0 -1

      1) "3"

      2) "1"

      3) "a"

      4) "b"

      5) "c"

      6) "d"

      127.0.0.1:6379[7]> lindex list:1 3

      "b"

      127.0.0.1:6379[7]> lset list:1 4 w

      OK

      127.0.0.1:6379[7]> lrange list:1 0 -1

      1) "3"

      2) "1"

      3) "a"

      4) "b"

      5) "w"

      6) "d"

      127.0.0.1:6379[7]>

      [點擊并拖拽以移動]

      這只是一小部分命令~

      使用java連接redis:

      1.eclipse創建一個java project

      2.導包

      3. 創建test類

      import org.junit.Test;

      import redis.clients.jedis.Jedis;

      import redis.clients.jedis.JedisPool;

      public class JedisTest {

      @Test

      public void jedisClient() {

      //使用該對象連接到redis

      Jedis jedis = new Jedis("localhost",6379);

      //在redis當中存值

      jedis.set("s2", "789456");

      //通過redis取值

      String result = jedis.get("s2");

      System.out.println(result);

      //關閉redis連接對象

      jedis.close();

      }

      初學Redis,redis配置、終端操作、界面操作、java連接redis。

      @Test

      public void getValues() {

      //使用該對象連接到redis

      Jedis jedis = new Jedis("localhost",6379);

      //在redis當中存值

      jedis.set("s2", "789456");

      //通過redis取值

      String result = jedis.get("s2");

      System.out.println(result);

      //關閉redis連接對象

      jedis.close();

      }

      @Test

      //使用jedis連接池連接redis服務器

      public void jedisPool() {

      JedisPool pool = new JedisPool("localhost",6379);

      //通過連接池獲取jedis

      Jedis jedis = pool.getResource();

      String result = jedis.get("s2");

      System.out.println(result);

      //關閉jedis客戶端

      jedis.close();

      }

      }

      4.測試

      5.使用spring+redis

      (1)導入spring相關包

      (2)配置spring配置文件applicationContext.xml

      (3)寫入一個方法

      @Test

      public void springJedisPool() {

      ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

      JedisPool pool = (JedisPool)ac.getBean("jedisPool");

      Jedis jedis = null;

      try {

      jedis = pool.getResource();

      jedis.set("name", "fuzui");

      String name = jedis.get("name");

      System.out.println(name);

      }catch(Exception e) {

      e.printStackTrace();

      }finally {

      if(jedis != null) {

      jedis.close();

      }

      }

      }

      (4)測試

      解釋都在代碼注釋當中了~

      學習redis的第一天.

      redis下載:

      csdn下載:1積分下載redis

      百度網盤免費下載:redis工具

      提取碼:za75

      java連接redis需要的包:

      csdn下載:1積分下載jedis

      百度網盤免費下載:jedis包

      提取碼:47ro

      spring完整5.0.7包:

      csdn下載:1積分下載spring包

      百度網盤免費下載:spring包

      提取碼:2wtu

      有問題或bug可以留言,一天內回復~

      Java Redis

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:機器學習付費專欄的一些簡介
      下一篇:這份Chrome插件英雄榜TOP30,請接收
      相關文章
      亚洲最大的视频网站| 亚洲精品乱码久久久久久中文字幕| 亚洲线精品一区二区三区影音先锋 | 亚洲AV无码精品色午夜果冻不卡| 亚洲视频人成在线播放| 亚洲av无码成人精品区在线播放| 精品亚洲国产成人av| 国产天堂亚洲国产碰碰| 国产精品亚洲天堂| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲最大的成人网| 日本亚洲免费无线码| 亚洲日韩一区二区三区| 亚洲国产欧美国产综合一区| 亚洲日本中文字幕天天更新| 亚洲精品无码久久久久A片苍井空 亚洲精品无码久久久久YW | 亚洲第一成人在线| 亚洲人成人网毛片在线播放| 亚洲国产综合精品中文第一| 亚洲熟女综合一区二区三区| 亚洲老熟女五十路老熟女bbw | 国产成人亚洲综合无| 高清在线亚洲精品国产二区| 精品国产香蕉伊思人在线在线亚洲一区二区| 亚洲国产精品无码久久青草| 亚洲精品高清国产一久久| 精品日韩亚洲AV无码一区二区三区 | 亚洲免费在线观看| 亚洲综合av永久无码精品一区二区| 亚洲人成在线播放网站| 亚洲av无码不卡一区二区三区| 亚洲精品福利视频| 中文字幕在线观看亚洲视频| 亚洲欧美日韩中文字幕一区二区三区| 亚洲国产精品无码久久久秋霞1| 亚洲?v女人的天堂在线观看| 亚洲色精品88色婷婷七月丁香| 亚洲AV日韩精品久久久久久| 亚洲精品在线免费观看视频| 国产午夜亚洲精品| 国产亚洲精品美女久久久久|