日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Redis的簡單使用

作者:宣布無人罪 更新時間: 2023-12-18 編程語言

Redis的簡單使用

01 前期準備

  • 首先是下載Redis

  • 正常去Redis官網下就可以了

  • 下載之后進入文件

  • 通過在路徑處cmd進入

  • redis-server.exe --service-install redis.windows.conf --service-name redis --loglevel verbose
  • 成功安裝即可

  • 啟動服務:redis-server.exe --service-start --service-name redis (后續啟動Redis只需要這個命令就可以了)
  • 停止服務:redis-server.exe --service-stop --service-name redis
  • 卸載服務:redis-server.exe --service-uninstall–service-name redis

02 正式使用

  • 通過redis-cli.exe啟動
  • 默認的端口號是6379

03 基本常識和通用操作

  • Redis默認是16個庫,從0開始且默認操作0號數據庫,可以通過select 數字的方式切換
select 2
#一般是 select index 的格式
  • Redis數據庫是以鍵值對的方式儲存的,通過dbsize 操作可以查看有多少對鍵值對
dbsize
# 查看DB大小
keys *
# 查看當前庫所有key的值,(empty list or set)則為空
flushdb
# 清空當前數據庫數據庫
FLUSHALL 
# 清空所有數據的的數據
exists name
#搜索該數據庫中是否有該名字的鍵,有則返回1,無則為0
move name index
#將鍵的值的移動到對應數據庫,成功為1.失敗為0
del name
#刪除鍵值對,成功為1.失敗為0
expire name time
#設置鍵值對的時間,成功為1,失敗為0
ttl name
#查看對應鍵值對的剩余時間,當數字為-2時說明數據已經過期
type name
#查看對應鍵值對的值的數據類型

04 五大數據類型的簡單操作

1.string

  • 常用操作
set name value
#向數據庫中添加key為name,值為value,數據類型為string的鍵值對
get name
#從數據庫中取出key為name的數據
append name value 
#向name數據尾部添加value的值,返回值為修改后的數據的長度
strlen name
#獲取key為name的數據長度

incr name
#當數據為純數字時使用,自增加一,如果非純數字則返回錯誤(ERR value is not an integer or out of range),成功返回
decr name
#自減符號,與自增類似,對純數字使用
incrby name index
#當數據為純數字時使用,數字加index
decrby name index
#當數據為純數字時使用,數字減index

getrange name start end
#按照數組的索引來取出數據
setrange name start value
#在對應索引處加入value,注:該方法無法改變數據的長度,所以會導致部分數據消失

setex name index value
#設置key為name,值為value,保存時間為index的鍵值對
setnx name value
#設置key為name,值為value,如果key存在,則返回0,無改變,如果key不存在就創建,返回1

mset k1 v1 k2 v2 ...
#批量插入任意對
mget k1 k2 k3
#批量獲取任意對
msetnx k1 v1 k2 v2 ...
#批量插入任意對,成功返回1,失敗返回0,注:該操作具有原子性,要么同時成功,要么同時失敗

SET user:1 {name:kk,age:18} # 設置一個user,使用json保存數據

MSET user:2:name kk user:2:age 18
# redis中可以直接使用這種方式設置對象
MGET user:2:name user:2:age 
# 獲取  user:{id}:{field}

GETSET name kk # 如果不存在值則返回 nil,并設置值
GETSET name ww # 如果存在值則獲取原來的值并設置新的值

2.List

  • 有序可以重復,可以用索引獲取
lrange name start end
#按照數組的索引來取出列表中的數據
lpush name value
#不存在就key創造一個列表,存在如果是列表就從上方插入一個數據,存在如果不是就報錯(error) WRONGTYPE Operation against a key holding the wrong kind of value
rpush name value
#從列表下方插入一條數據
lpop name 
#從列表上方開始移除
rpop name
#從列表下方開始移除

lindex name index
#按數組的索引拿數據
llen name
#獲取列表長度
lrem name index value
#在列表內刪除index個數據,數據內容為value,注該方法不具有原子性,如果只找到一個數據,那也就刪這個數據,不會因為刪的數量不足index個,而失敗
ltrim name start end 
#保留從start到end閉區間內的數據,其他數據全部刪除
lset name index value
#將指定索引處的數據改變
linstert name before value1 value2
#往value1數據之后加入value2,失敗返回-1
linstert name before value1 value2
#往value1數據之后加入value2

 rpoplpush name1 name2
 #將列表name1的最后一個數據轉移到列表name2的最上方
 
  • Redis的list本質上是鏈表,當key不存在時創建新的鏈表

  • 隨機定位能力差,首尾插入刪除好,要注意鏈表

  • 可以當做棧/隊列使用(lpush,lpop)

3.set

  • 和list不一樣,set的值不能重復,且無序不能用索引查找
sadd name value
#向name的set里插入value,成功返回1,失敗返回0,不能插入重復數據,如果不存在name的set會自動生成一個set
smembers name
#查詢set的所有數據
sismember name
#查詢set里是否有name數據,成功返回1,失敗返回0
srandmember name index
#從指定set里隨機抽取index個數據展示
spop myset index
#隨機刪除index個數據,當沒有index時,默認隨機刪除1個

smove name1 name2 value
#將數據value從name1的set容器中轉移到name2容器
sdiff name1 name2
#差集 展示name2有的,name1沒有的數據
sinter name1 name2
#交集 展示name1和name2共有的數據
sunion name1 name2
#并集 展示name1和name2的數據

4.Hash

hset name1 name2 value
#向名為name1的Hash集合里加入key為name2 值為value的鍵值對
hget name1 name2
#從名為name1的Hash集合里取出key為name的鍵
hmset name1 k1 value1 k2 value2
#向名為name1的Hash集合里批量加入鍵值對
hmget name1 k1 k2 k3
#從向名為name1的Hash集合里批量取出值
hgetall name1
#展示name1中所有鍵值對

hdel name1 k1
#刪除name1的hash集合中的k1鍵值對,成功為1失敗為0
hlen name1
#查詢名為name1的hash集合中有幾對鍵值對
hexisits name1 k1
#判斷name1集合中是否存在k1的鍵值對,存在為1,不存在為0
hkeys myhash
# 獲取全部的key
hvals myhash
# 獲取全部的value

hincrby name1 k1 index
#當值為純數字時使用,是k1的數據加上index,當k1對應的value不是純數字時,報錯(error) ERR hash value is not an integer,當k1不存在時,直接視為加入k1-index的鍵值對
hsetnx name1 k1 value
#向name1集合中加入鍵值對,如果不存在則可以設置,存在不能設置
  • 更適合個人信息的存儲

5.sorted set/zset(有序集合)

  • 在set的基礎上加了一個ksv
  • 即是以鍵值對的形式報存,value不能重復,key可以重復
zadd name k1 v1
#添加一個值
zadd name k1 v1 k2 v2
#批量添加值
zrange name 0 -1
#查看全部,數字部分可改,通過索引方式取出

ZRANGEBYSCORE salary -inf +inf # 升序 負無窮 - 正無窮
ZRANGEBYSCORE salary -inf 2000 WITHSCORES # 自定義范圍,并且附帶對應的score值
ZREVRANGE salary 0 -1 WITHSCORES # 降序查詢
ZCOUNT salary 1000 2000 # 查詢 1000-2000有多少個數據
ZREM salary xiaolv # 刪除
  • 成績表、工資表、排行榜等需要排序的表

原文鏈接:https://blog.csdn.net/2302_77182979/article/details/134539775

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新