Redis學習第二天

2021-10-12 21:57:06 字數 4688 閱讀 2115

redis的資料型別(掌握)

啟動後知識串講

1. 單程序單執行緒

2. 預設16個兄弟一起站台

預設16個資料庫,類似陣列下表從零開始,初始預設使用零號庫

3. 切換資料庫命令

select index       --------index表示資料庫的索引,從0開始,(命令切換資料庫)
4. 常用基本命令
dbsize          -----檢視的當前資料庫的key的數量

flushdb -----清空當前庫

flushall -----通殺全部庫

5. 其他說明

同一密碼管理,16個資料庫都是同樣密碼,要麼ok要麼乙個也連不上

redis索引都是從0開始

redis的資料型別(掌握)

1. 概述

2.字串型別map

3. list資料型別map>(注意實際使用沒有單引號)

4. hash資料型別map>

5. set資料型別map>

6. zset(sortset)資料型別

redis相關命令詳解(掌握)

1.常用命令

keys * 獲取所有的key

select 0 選擇第乙個庫

move mystring 1 將當前的資料庫key移動到某個資料庫,目標庫有,則不能移動

flushdb 清除指定庫

randomkey 從當前資料庫中隨機返回

type key 型別

del key1 刪除key

exists key 判斷是否存在key

expire key 10 過期

pexpire key 1000 毫秒

persist key 刪除過期時間

ttl key 檢視還有多少秒過期,-1表示永不過期,-2表示已過期

2.string型別相關命令
語法:set key value

set name cxk 設定name為鍵,cxk為值

get name 獲取鍵為name的值

getrange name 0 -1 字串分段,(0 -1)表示全部 (0 -2)表示從後邊減兩個

(0 2)表示第012三個字元,也就是字串長3

getset name new cxx 設定新值並且返回顯示舊值

mset key1 key2 批量設定值,其中key(鍵 值)都要有

mget key1 key2 批量獲取值

setnx key value 不存在就插入(not exists)

setrange key index value 從index開始替換value

incr age 遞增,每執行一次就遞增一次

incrby age 10 遞增,每執行一次就遞增10次,,10表示步長

decr age 遞減

decr age 10 遞減

incrbyfloat 增減浮點數

strlen 長度

object encoding key 得到key的型別 ,string裡面有三種編碼

1. int 用於能夠***64位有符號整數表示的字串

2. embstr 用於長度小於或等於44位元組 redis3.x中是39位元組,這種 型別的編碼在記憶體使用時效能更好

3. raw 用於長度大於44位元組的

3. lisi集合陣列
語法:  lpush key values

lpush mylist a b c 左插入

lpush mylist x y z 右插入

lrange mylist 0 -1 取出資料集合 (0 -1)是取出所有 (0 1)取出第乙個和第二個

lpop mylist 彈出集合最後乙個元素,彈出去就沒有了

rpop mylist 彈出第乙個元素,彈出去就沒有了

llen mylist 長度

lrem mylist count value 刪除

|- count的值可以是以下幾種:

|-- count>0:從表頭開始向表尾搜尋,移除與 value 相等的元素,數量為 count 。

|-- count<0:從表尾開始向表頭搜尋,移除與 value 相等的元素,數量為 count 的絕 對值。

|-- count=0:移除表中所有與 value 相等的值

lindex mylist 2 指定索引的值

lset mylist 2 n 索引設值

ltrim mylist 0 4

|-- 對乙個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在指定 區間之內的元素都將被刪除。

|-- 下標 0 表示列表的第乙個元素,以 1 表示列表的第二個元素,以此類推。

你也可以使用負數下標,以 -1 表示列表的最後乙個元素, -2 表示列表的倒數 第二個元素,以此類推。

linsert mylist before a 插入

linsert mylist after b 插入

|-- 元素,以此類推。

linsert mylist before a 插入

linsert mylist after a 插入

|--命令用於在列表的元素前或者後插入元素。 當指定元素不存在於列表中時,不執行任 何操作。

當列表不存在時,被視為空列表,不執行任何操作。 如果 key 不是列表型別,返回 乙個錯誤。

rpoplpush list list2 轉移列表的資料

|-- 命令用於移除列表的最後乙個元素,並將該元素新增到另乙個列表並返回。

4. hash
語法:hset key value-key  value-key

hset myhash name cxx

|-- 命令用於雜湊表中的賦值

|-- 如果雜湊表不存在,乙個新的雜湊表被建立並進行hset操作

|-- 如果字段已經存在於雜湊表中,舊值將被覆蓋

hget myhash name

hmset myhash name cxx age 25 note "i am notes"

hmget myhash name age note

hgetall myhash 獲取所有的

hexists myhash name 是否存在

hsetnx myhash score 100 設定不存在的,如果存在,不做處理

hincrby myhash id 1 遞增

hdel myhash name 刪除

hkeys myhash 只取key值

hvals myhash 只取value

hlen myhash 長度

5. set
sadd myset redis

smembers myset 資料集合

srem myset set1 刪除

sismember myset set1 判斷元素是否在集合中

scard key name 個數

sdiff key1 key2 ......|sinter| sunion 操作:集合間運算:差集|交集|並集

srandmember key count 隨機獲取集合中的元素,後邊加數字,表示獲取乙個陣列

spop 從集合中彈出乙個元素

6. zset
zadd zset 1 one      單個新增

zadd zset 2 two 3 three 多個新增

zincrby zset 1 one 增長分數(score的值)

zscore zset two 獲取分數

zrange zset 0 -1 withscores 範圍值

zrangebyscore zset 10 25 withscores 指定範圍的值(從小到大排列)

zrangebyscore zset 10 25 withscores limit 1 2 分頁

zrevrangebyscore zset 10 25 withscores 指定範圍的值(從大到小排列)

zcard zset 元素的數量

zcount zset 獲取指定分數範圍內的元素個數

zrem zset one two 刪除乙個或多個元素

zremrangebyrank zset 0 1 按照排名範圍刪除元素

zremrangebyscore zset 0 1 按照分數範圍刪除元素

zrank zset 0 -1 分數最小的元素排名為0

zrevrank zset 0 -1 分數最大的元素排名為0

zinterstore 計算給定的乙個或多個有序集的交集,預設情況下,結果集中某個成員的 score 值是 所有給定集下該成員 score 值之和.

zunionstore salary 2 programmer manager weights 1 3

|-- 公司決定加薪。。。除了程式設計師。。。

|-- weights後邊 1表示第乙個集合都乘1,3表示第二個幾個都乘3

Redis學習第二天

而鍊錶的優點就是對於鍊錶中的元素的增刪,效率極高。使用環境 1.做大資料集合的增刪 2.任務佇列 使用者任務佇列 list命令 取值 lrange key start end 獲取鍊錶從start到end的元素的值,start end從0記數 也可以為負數,若為 1則表示鍊錶尾部的元素,以此類推。兩...

Redis第二天學習筆記

redis官方提供了兩種不同的持久化方法來將資料儲存到硬碟裡面,分別是 特點 這種方式可以將某一時刻的所有資料都寫入硬碟中,當然這也是redis的預設開啟持久化方式,儲存的檔案是以.rdb形式結尾的檔案,因此這種方式也稱之為rdb方式。快照生成方式 配置生成快照名稱和位置 在redis.conf中進...

學習第二天

linux系統的檔案型別及許可權的相關知識 1.普通檔案 l 連線檔案 d 資料夾 表示不同的檔案型別 2.檔案許可權 r 可讀 w 可寫 x 可執行 3.chmod 修改檔案許可權,修符號或者使用八進位制 linux的基礎命令 cd 切換目錄 ls 檢視內容 表示當前目錄 上一級目錄等 touch...