redis 筆記 簡介 數據類型

Redis

概述(參考:https://www.runoob.com/redis/redis-conf.html)

Redis介紹
Redis的安裝(單機版,集羣版,分佈式集羣版)
redis實操:
 數據類型(常用的五大數據類型,string,list,set,hash,zset)
 命令行
 java api
Redis介紹
說明:
①redis是基於內存的nosql的數據庫。(nosql: not only structure query language)
 Redis是一種面向“鍵/值”對數據類型的內存數據庫
②no sql數據庫有:
 hbase
 mongodb
 redis
③redis的性能高:
 讀的速度:11萬次/秒
 寫的速度:8.1萬次/秒
④redis底層的源碼使用c來開發的,作者也提供了各種語言的客戶端(java,php等等)
 不能使用命令jps(java processor status)查看進程名
  netstat -tunlp | grep 6379
⑤也可以用作消息的中間件(包含消息的發佈和訂閱)。
⑥應用在高併發和實時請求的場景。
redis 安裝
單機版

安裝步驟

→ Redis安裝(單機版)
	1,Linux下安裝:
		下載
			 下載地址:http://download.redis.io/releases/
			 這裏下載的版本爲redis-3.2.0
			soft]# wget http://download.redis.io/releases/redis-3.2.0.tar.gz
			soft]# tar -zxvf redis-3.2.0.tar.gz 
			opt]# cd redis-3.2.0/
			
		編譯
			redis-3.2.0]# make
			編譯完成了會在src目錄下產生redis的相關命令
			
		注意:若是make命令不能使用,需要在線安裝make(前提:虛擬機可以連接外網)
			安裝:
			yum -y install gcc automake autoconf libtool make
			安裝g++:
			yum install gcc gcc-c++
			
		重命名,配置環境變量
		   mv redis-3.2.0/ redis
		   
		 
		# Redis Profile
		# 配置Redis的環境變量,在/etc/profile.d/bigdata-etc.sh
		export REDIS_HOME=/opt/redis
		export PATH=$PATH:$REDIS_HOME/src
		
		source生效

		 注意:若是希望在任意的目錄下都可以使用redis相應的執行文件的話,需要配置環境量。
	
    2, Redis啓動
       ①修改redis的核心配置文件
		Redis的配置文件位於Redis的安裝目錄之下,文件名爲redis.conf。修改redis.conf中的配置項:
		daemonize yes(後臺運行)
		logfile /opt/redis/logs/redis.log(日誌文件,目錄必須存在,創建目錄:mkdir -p /opt/redis/logs)	
		bind NODE01
		
		②正式啓動
		        服務端:redis-server redis.conf
				查看服務端是否啓動
					netstat -tunlp | grep 6379--->查看6379端口
					
					[root@NODE01 redis]# netstat -tunlp | grep 6379
					tcp        0      0 127.0.0.1:6379              0.0.0.0:*                   LISTEN      5136/redis-server 1 	


        ③客戶端連接redis server以及關閉redis server 		
			客戶端連接: src/redis-cli -h NODE01 -p 6379  或者		redis-cli -h NODE01
			
			關閉redis服務(下面的命令是關閉服務器db server)
				redis-3.2.0]# src/redis-cli  -h NODE01 shutdown

redis.conf核心配置文件介紹

→ 配置信息的查看以及編輯	
	可以通過config命令來查看或設置配置項。
	1,查看
	   語法,Redis config命令格式如下:  
	   redis localost:6379> config get 配置名稱
	   如: redis localost:6379> config get loglevel
	   1) "loglevel"
	   2) "notice"
	   使用*號獲取所有配置項:redis localost:6379> config get *
	   
	2,編輯
	  可以通過修改redis.conf文件或使用config set命令來修改配置
	  
	  方式1:永久方式 → 可以通過修改redis.conf文件
	  方式2:臨時方式(redis server不重啓,一直有效,重啓失效)→ config set命令來修改配置
	  
	  基本語法:
	  redis localost:6379> config set 配置名 配置值
	  eg: redis localost:6379> config set loglevel "warning"
		  redis localost:6379> config get loglevel
	  1) "loglevel"
	  2) "warning"  -->對當前服務有效,之後當服務重啓之後,纔會失效	

redis的安全設置

→ Redis的安全設置	
	設置Redis密碼,修改redis.conf
		requirepass root --->將redis密碼修改成爲root
		啓動客戶端(連接遠程的redis服務器):src/redis-cli -h NODE01 -p 6379 -a root
		
	關閉服務:redis-cli -a root -h NODE01 shutdown
	
	注意:爲了後續演示方便,建議將requirepass設置屏蔽掉。
redis常用數據類型
介紹
	Redis支持五種數據類型:
		string(字符串)
		hash(哈希)  
		list(列表)
		set(集合)
		zset(sorted set:有序集合)
		
	在redis命令行,使用Ctrl + l, 可以清空屏幕。
	
	注意:
	 redis參考教程:
		http://www.runoob.com/redis/redis-tutorial.html
redis常用數據類型之string
	意思是redis的string可以包含任何數據。比如jpg圖片或者序列化的對象 。string類型是Redis最基本的數據類型,一個鍵最大能存儲512MB(默認的值,可以在redis.conf中進行定製)。

	命令		描述
	-------------------------------------------------------------------------------------
	SET key value		設置指定key的值(會覆蓋無視數據類型)
	GET key		獲取指定key的值
	GETRANGE key start end	返回key中字符串值的子字符(從0開始的閉區間[start, end])
	GETSET key value	將給定key的值設爲value,並返回key的舊值(old value)
	GETBIT key offset	對key所儲存的字符串值,獲取指定偏移量上的位(bit)
	MGET key1 [key2..] 	獲取所有(一個或多個)給定key的值
	SETBIT key offset value	對key所儲存的字符串值,設置或清除指定偏移量上的位(bit)
	SETEX key seconds value	將值value關聯到key,並將key的過期時間設爲seconds(以秒爲單位)
	SETNX key value	只有在key不存在時設置key的值
	SETRANGE key offset value	用value參數覆寫給定key所儲存的字符串值,從偏移量offset開始
	STRLEN key		返回key所儲存的字符串值的長度
	MSET key value [key value ...]	同時設置一個或多個key-value對
	MSETNX key value [key value ...]	同時設置一個或多個key-value對,當且僅當所有給定key都不存在
	PSETEX key milliseconds value	這個命令和SETEX命令相似,但它以毫秒爲單位設置key的生存時間,而不是像SETEX命令那樣,以秒爲單位
	INCR key		將key中對應儲存的數字值增一
	INCRBY key increment	將key所儲存的值加上給定的增量值(increment)
	INCRBYFLOAT key increment	將key所儲存的值加上給定的浮點增量值(increment)
	DECR key		將key中儲存的數字值減一
	DECRBY key decrement key	所儲存的值減去給定的減量值(decrement)
	APPEND key value	如果key已經存在並且是一個字符串,APPEND命令將value追加到key原來的值的末尾
redis常用數據類型之hash(哈希)
	Redis hash 是一個鍵值對集合。Redis hash是一個string類型的field和value的映射表,hash特別適合用於存儲對象。
	每個hash可以存儲2的32-1次冪鍵值對(40多億)。 


	命令		描述
	-------------------------------------------------------------------------------------    
	命令		描述
	HDEL key field2 [field2]	刪除一個或多個哈是表字段
	HEXISTS key field	查看hash表key中,指定字段是否存在
	HGET key field		獲取hash表中指定字段的值
	HGETALL key		獲取所有的字段和值
	HINCRBY key field increment	爲指定字段的整數值加上增量increment
	HINCRBYFLOAT key field increment	爲指定字段的浮點值加上增量increment
	HKEYS key		獲取所有的字段
	HLEN key		獲取字段的數量
	HMGET key field1 [field2]	獲取所有給定字段的值
	HMSET key f1 v1 [f2 v2]	同時將多個file-value設置到key中
	HSET key field value	將哈希表key的field設置爲value
	HSETNX key field value	當在field不存在時,設置相關字段的值
	HVALS key		獲取所有的值
	HSCAN key cursor [MATCH pattern] [COUNT count] 	迭代哈希表中的鍵值對
	

redis常用數據類型之List(鏈表)
	   Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)。
	列表最多可存儲 2的32-1次冪元素 (4294967295, 每個列表可存儲40多億)。 (列表:雙向鏈表)
	
	  注意: ①list是雙向鏈表
	        ②有序,不排重
	        ③其他類型可以通過值直接轉換成string類型,反之則不行。如:不能將string轉換爲list

	命令			描述
	-------------------------------------------------------------------------------------  
	BLPOP key1 [key2 ] timeout		移除並獲取列表中的第一個元素,如果沒有會阻塞列表直到超時【單位是秒s】或發現可彈出元素爲止
	BRPOP key1 [key2 ] timeout		移除並獲取列表中的最後一個元素,如果沒有會阻塞列表直到超市或發現可彈出元素爲止
	BRPOPLPUSH source destination timeout	從列表中彈出一個值,將彈出的元素插入到另外一個列表中並返回它,如果沒有元素會阻塞列表知道等待超時或發現可彈出元素爲止
	LINDEX key index		通過索引獲取列表中的元素
	LINSERT key BEFORE|AFTER pivot value	在列表的元素前或後插入元素
	LLEN key			獲取列表長度
	LPOP key			移出並獲取列表的第一個元素
	LPUSH key value1 [value2]		將一個或多個值插入到列表頭部
	LPUSHX key value		將一個或多個值插入到已存在的列表頭部
	LRANGE key start stop		獲取列表指定返回內的元素
	LREM key count value		移出列表元素
	LSET key index value		通過索引設置列表元素的值
	LTRIM key start stop		對一個列表進行修剪(trim),也就是說,讓列表只保留指定區間內的元素,刪除其它
	RPOP key			移出並獲取列表最後一個元素
	RPOPLPUSH source destination	移出列表的最後一個元素,並將該元素添加到另一列表並返回
	RPUSH key value1 [value2]		在列表中添加一個或多個值
	RPUSHX key value		爲已存在的列表添加值
	
	
redis常用數據類型之Set(集合)
→類型4之Set(集合)
    Redis的Set是string類型的無序集合。
    集合是通過哈希表實現的,與Java中的Set集合類似(無序,排重)
    注意:
    ①根據集合內元素的唯一性,第二次插入相同的元素將被忽略。
    集合中最大的成員數爲 2的32 - 1次方 (4294967295, 每個集合可存儲40多億個成員)。

    命令			描述
    -----------------------------------------------------------------------------------
    SADD key member1 [member2]	向集合添加一個或多個成員
    SCARD key			獲取集合的成員數(size)
    SDIFF key1 [key2]		返回給定所有集合的差集  (差集 = 集合 - 交集)
    SDIFFSTORE dest key1 [key2]		返回並保存給定集合差集保存到dest中
    SINTER key1 [key2]		返回給定集合的交集
    SINTERSTORE dest key1 [key2]	返回並保存給定集合的交集到dest中
    SISMEMBER key member		判斷member元素是否是集合key的成員
    SMEMBERS key		返回集合中所有成員
    SMOVE src dest member		將member元素從src移動到dest中
    SPOP key			移除並返回集合中的一個隨機元素
    SRANDMEMBER key [count]		返回集合中一個或多個隨機元素
    SREM key member1 [member2]	移除集合中一個或多個成員
    SUNION key1 [key2]		返回所有給定集合的並集
    SUNIONSTORE dest key1 [key2]	返回並保存給定集合的並集到dest
    SSCAN key cursor [match pattern] [count count]	迭代集合中的元素	
	

redis常用數據類型之zset(集合)
類型5之zset(集合)
	zset(sorted set:有序集合)
		   Redis zset和set一樣也是string類型元素的集合,且不允許重複的成員。不同的是每個元素都會關聯一個double類型的分數。
		   redis正是通過分數來爲集合中的成員進行從小到大的排序。
		   zset的成員是唯一的,但分數(score)卻可以重複。
		   zadd命令 添加元素到集合,元素在集合中存在則更新對應score
		   
	注意: 
	   ①排重,且排序的
	   ②如何來排序的:
	      a) 若得分相同,根據值的字典順序升序排列的
		  b) 若得分不同,根據分數的升序來排列的

	命令			描述
	——————————————————————————————————————————————————————————
	Zadd key score1 member1  [score2 member2]		想有序集合添加一個或多個成員,或是更新已經存在成員的分數
	Zcard key			獲取有序集合的成員數
	Zcount key min max		計算在有序集合中指定區間分數的成員數
	Zincrby key increment member	有序集合中對指定成員的分數上增量incr
	Zinterstore dest nkeys key [key..]	計算給定的一個或多個有序集的交集並保存在新的有序集合dest中
	Zlexcount key min max		在有序集合中計算指定字典區間內成員數量
	Zrange key start stop [withscores]	通過索引區間返回有序集合成指定區間內的成員
	Zrangebylex key min max [limit offset count]	通過字典區間返回有序集合的成員
	Zrangebyscore key min max [withscores] [limit]	通過分數返回有序集合指定區間內的成員
	Zrank key member		返回有序集合中指定成員的索引
	Zrem key member [member ...]	移除有序集合中的一個或多個成員
	Zremrangebylex key min max		移除有序集合中給定的字典區間的所有成員
	Zremrangebyrank key start stop	移除key中給定的排名區間的所有成員
	Zremrangebyscore key start stop	移除key中給定的分數區間的所有成員
	Zrevrange key start stop [withscores]	返回有序key中指定區間內的成員,通過索引,分數從高到低
	Zrevrangebysocre key max min [withscores]	返回有序key中指定分數區間內的成員,通過索引,分數從高到低
	Zrevrank key memeber		返回key中指定成員的排名,key成員按分數值遞減排序
	Zscore key member		返回key中member的分數
	Zunionstore dest numkeys key [key...]	計算給定的一個或多個有序集的並集,並存儲到新的dest中
	Zscan key cursor [match pattern] [COUNT count]	迭代有序集合中的元素(包括元素成員和元素分值)	

3.2.5 Redis可視化客戶端之redis desktop manager

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章