網站首頁 編程語言 正文
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
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-04-10 SpringBoot 導入插件報錯 Cannot resolve plugin org.spring
- 2022-09-15 Pycharm虛擬環境創建并使用命令行指定庫的版本進行安裝_python
- 2022-10-24 C#中GDI+繪制圓弧及圓角矩形等比縮放的繪制_C#教程
- 2022-10-08 淺談數據庫日期類型字段設計應該如何選擇_MsSql
- 2022-06-14 GO語言協程創建使用并通過channel解決資源競爭_Golang
- 2022-05-13 FAILED: Execution Error, return code 1 from org.ap
- 2022-12-25 Flutter桌面開發windows插件開發_Android
- 2022-07-18 Redis服務器連接本地Linux所踩的坑
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支