重慶速代網(wǎng)絡(luò)科技天津seo網(wǎng)絡(luò)營銷
一、Redis的安裝
Redis是一個基于內(nèi)存的 key-value 結(jié)構(gòu)數(shù)據(jù)庫。 基于內(nèi)存存儲,讀寫性能高 適合存儲熱點數(shù)據(jù)(熱點商品、資訊、新聞) 企業(yè)應(yīng)用廣泛
官網(wǎng):https://redis.io
中文網(wǎng):https://www.redis.net.cn/
Redis安裝包分為 Windows 版和 Linux 版:
Windows版下載地址:https://github.com/microsoftarchive/redis/releases
Linux版下載地址: https://download.redis.io/releases/
Redis的Windows版屬于綠色軟件,直接解壓即可使用,解壓后目錄結(jié)構(gòu)如下:
二、Redis的啟動
啟動方式
windows版本
服務(wù)啟動命令:redis-server.exe redis.windows.conf
Linux版本:
啟動方式跟windows也差不多
關(guān)閉方式
windows版本:
Redis服務(wù)默認端口號為 6379 ,通過快捷鍵Ctrl + C 即可停止Redis服務(wù)
Linux版本:
kill? -9? 6379
三、客戶端連接
客戶端連接命令:redis-cli.exe
通過redis-cli.exe命令默認連接的是本地的redis服務(wù),并且使用默認6379端口。
也可以通過指定如下參數(shù)連接: -h ip地址 -p 端口號 -a 密碼(如果需要)?
設(shè)置Redis服務(wù)密碼,修改redis.windows.conf
requirepass 123456
注意: 修改密碼后需要重啟Redis服務(wù)才能生效 Redis配置文件中 # 表示注釋
Redis客戶端圖形工具
四、Redis的數(shù)據(jù)類型
Redis存儲的是key-value結(jié)構(gòu)的數(shù)據(jù),其中key是字符串類型,value有5種常用的數(shù)據(jù)類型:
字符串 string
哈希 hash
列表 list
集合 set
有序集合 sorted set / zset
?
?字符串(string):普通字符串,Redis中最簡單的數(shù)據(jù)類型
哈希(hash):也叫散列,類似于Java中的HashMap結(jié)構(gòu)
列表(list):按照插入順序排序,可以有重復(fù)元素,類似于Java中的LinkedList
集合(set):無序集合,沒有重復(fù)元素,類似于Java中的HashSet
有序集合(sorted set / zset):集合中每個元素關(guān)聯(lián)一個分數(shù)(score),根據(jù)分數(shù)升序排序,沒有重復(fù)元素
字符串操作命令
Redis 字符串類型常用命令:
SET key value? ?設(shè)置指定key的值
GET key?? ??? ??? ?獲取指定key的值
SETEX key seconds value?? ?設(shè)置指定key的值,并將 key 的過期時間設(shè)為 seconds 秒
SETNX key value?? ??? ?只有在 key 不存在時設(shè)置 key 的值
ttl key ? ? ? ? ? ? ? ? ? ? ? ? 獲取key的有效時間(設(shè)置了有效期的key返回有效期時間,過期了返回-2;沒設(shè)置有效期的key,返回-1)
del key ? ? ? ? ? ? ? ? ? ? ? ? ?刪除指定key
哈希操作命令
Redis hash 是一個string類型的 field 和 value 的映射表,hash特別適合用于存儲對象,常用命令:
HSET key field value ?? ?將哈希表 key 中的字段 field 的值設(shè)為 value
HGET key field ?? ?獲取存儲在哈希表中指定字段的值
HDEL key field?? ??? ?刪除存儲在哈希表中的指定字段
HKEYS key ?? ??? ?獲取哈希表中所有字段
HVALS key ?? ??? ?獲取哈希表中所有值?
列表操作命令
Redis 列表是簡單的字符串列表,按照插入順序排序,常用命令:
LPUSH key value1 [value2] ?? ?將一個或多個值插入到列表頭部(左邊)
LRANGE key start stop ?? ??? ?獲取列表指定范圍內(nèi)的元素
RPOP key ?? ??? ??? ?移除并獲取列表最后一個元素(右邊)
LLEN key ?? ??? ??? ?獲取列表長度?
set集合操作命令
Redis set 是string類型的無序集合。集合成員是唯一的,集合中不能出現(xiàn)重復(fù)的數(shù)據(jù),
常用命令:
SADD key member1 [member2] ?? ?向集合添加一個或多個成員
SMEMBERS key ?? ??? ?返回集合中的所有成員
SCARD key ?? ??? ??? ?獲取集合的成員數(shù)
SINTER key1 [key2] ?? ??? ?返回給定所有集合的交集
SUNION key1 [key2] ?? ??? ?返回所有給定集合的并集
SREM key member1 [member2] ?? ?刪除集合中一個或多個成員?
有序集合操作命令?
Redis有序集合是string類型元素的集合,且不允許有重復(fù)成員。每個元素都會關(guān)聯(lián)一個double類型的分數(shù)。常用命令:
ZADD key score1 member1 [score2 member2] ?? ?向有序集合添加一個或多個成員
ZRANGE key start stop [WITHSCORES] ?? ??? ?通過索引區(qū)間返回有序集合中指定區(qū)間內(nèi)的成員 ZINCRBY key increment member ?? ??? ??? ?有序集合中對指定成員的分數(shù)加上增量 increment ZREM key member [member ...] ?? ??? ??? ?移除有序集合中的一個或多個成員?
通用命令
Redis的通用命令是不分數(shù)據(jù)類型的,都可以使用的命令:
KEYS pattern ?? ??? ?查找所有符合給定模式( pattern)的 key
EXISTS key ?? ??? ?檢查給定 key 是否存在
TYPE key ?? ??? ?返回 key 所儲存的值的類型
DEL key ?? ??? ?該命令用于在 key 存在是刪除 key
五、Redis的Java客戶端
Redis 的 Java 客戶端很多,常用的幾種:
Jedis 里面的方法命名基本跟Redis的命令命名方式一樣
Lettuce
Spring Data Redis 命名與Redis命名的命名方式有出入
Spring Data Redis 是 Spring 的一部分,對 Redis 底層開發(fā)包進行了高度封裝。 在 Spring 項目中,可以使用Spring Data Redis來簡化操作。