redis小結

Redis

切換到redis的目錄

啟動:./redis-server

關閉:killall redis-server

Redis的數據類型:

String字符 ?list鏈表 ?set集合(無序) ?Sort Set排序(有序)?hash數據類型

string類型的數據操作

redisstring可以包含任何數據。包括jpg圖片或者序列化的對象。

單個value值最大上限是1G字節。

set key value 設置key對應的只為string類型的value

set key ?value ?EX ?過期秒數

set key ?value ?PX ?過期毫秒數

get key 獲取key的值

mset key1 value1 ... keyN valueN 一次設置多個key的值

mget key1 key2 ... keyN 一次獲取多個key的值

Key的操作

給被存儲信息取的的一個“名字”

>exists key 測試指定key是否存在

>del key1 key2 ... keyn 刪除指定key

>type key 返回key的類型

>keys pattern 返回指定模式匹配的所有key

??keys col* 獲得所有名字為col開始的key的信息

??keys ?* ?????????????????????獲得當前redis數據庫全部的key

>rename oldkey ?newkey 修改名字

>dbsize 返回當前數據庫key的數量

>expire key seconds ? key指定過期時間

>ttl key 返回key的剩余生命時間

>select dbindex 選擇數據庫

redismysql數據庫相似的地方是有多個數據庫供操作

>move key dbindex key從當前數據庫移動到指定數據庫

>flushdb 刪除當前數據庫中所有key

>flushall 刪除所有數據中的所有key

數據類型list鏈表

鏈表使用特點:

  • 數據進入鏈表后有嚴格的先后順序關系
  • 允許相同的元素內容重復進入鏈表
  • 鏈表可以在頭部進入數據、尾部出數據,也可以在頭部進、頭部出[與棧數據結構一致]
  • 鏈表中存儲的單元數據都是”String字符串”類型

?

lpush key ?string ? key對應的鏈表的頭部添加字符串元素

? lpush(left push)從鏈表左側添加單元數據

? 可以多次調用,代表給鏈表添加多個數據

rpop key list的尾部刪除元素,并返回刪除的元素

? rpop(right pop)從鏈表的右側刪除數據

llen key 返回key對應list鏈表的長度

? llen(list length)

key不存在返回0

如果key對應類型不是list返回錯誤

lrange key start end 返回指定區間內的元素,下標從0開始

? lrange(left range)從鏈表的左側獲得范圍內的元素出來,范圍下標從0開始

rpush key string 同上,在尾部添加元素

? rpush(right push)從鏈表右側添加單元數據

lpop key list的頭部刪除元素,并返回刪除元素

? lpop(left pop)從鏈表的左側刪除數據

ltrim key start end ????截取list,保留指定區間內元素

? ltrim(left trim),從左側做截取保留

Set 集合類型

特點:

  • 內部數據沒有先后順序(不同于list鏈表)
  • 內部各個元素彼此都是唯一的,不能重復(不同于list鏈表)
  • 集合中的各個元素類型都是String類型
  • 除了基本的添加,刪除的數據操作,還包括,取交、并、差集合的數據操作

sadd key member [member...] 添加一個string元素到key對應的set集合中

成功返回1

如果元素存在,返回0,操作無效

可以調用多次,給一個集合添加多個元素

srem key member [remove]key對應的set中移除給定元素

smove p1 p2 member p1集合中移除member成員后添加給p2集合

scard key 返回集合的元素個數

sismember key member ? 判斷member是否在集合中

sinter key1 key2 ... keyN 返回所有給定key的交集

sunion key1 key2 ... keyN 返回所有給定key的并集

sdiff key1 key2 ... keyN 返回所有給定key的差集

? 內部有key1的元素,不會有key2keyN的任何元素

smembers key 返回key對應集合的全部元素

? list中的lrange方法相似

Sort set排序集合

set一樣sorted set也是string類型元素的集合,

Sort ?Set類型 可以想象成是 setlist結合的排序集合類型

?

sort set集合內部的每個元素都會關聯一個。該權是衡量元素順序的標準(生活中權可以是身高、分數、商品熱賣數量)

通過權可以有序的排列獲取集合中的元素

?

sort set中每個元素分為兩部分:值、權

zadd key score()??member() ?scoreN memberN ..

添加元素到集合

元素在集合中存在則更新對應的score

該方法操作元素,存在就更新,不存在就添加

一次性可以設置1個或多個元素

zrem key member (remove)刪除指定元素,1表示成功,0表示不存 在該元素

zrange key start end 返回集合中指定區間的元素,

(范圍是權值由小到大排序的序號,序號是從0 )

?

zrevrange key start end (reverse反轉)

返回集合中指定區間的元素,

(范圍是權值由大到小排序的序號,序號是從0 )

zcard key ?? 返回集合中元素個數

zremrangebyrank key start stop 刪除集合中排名在給定區間的元素

(范圍是權值由小到大排序的序號,序號是從0 )

Hash數據類型

hash類型存儲信息的樣子與數據表的單條記錄非常相似

設置一個key后,可以為該key設置多個field域名? field域名的值

?

hsetHSET key field value ?每次設置一個域

hmsetHMSET key field value [field value ...] ?允許一次性設置多個域

hgetHGET key field 獲得一個key的一個域的信息

hmgetHMGET key field [field ...] ?獲得一個key的多個域的信息

Hash快照持久化:

文檔中所寫內容案例:

save 900 1 #900 (15分鐘)內如果超過 1 key 被修改,則發起快照保存

save 300 10 ???? #300(5分鐘)超過10key被修改,發起快照

save 60 10000??? #60(1分鐘)超過10000key被修改,發起快照

linux終端手動發起快照持久化

?./redis-cli ?[-h 主機名ip ?-p 端口號碼] ?bgsave

?./redis-cli ?-h ?ip地址 ?-p 端口 ?bgsave

Redis設置密碼:

./redis-cli ?-a ?密碼 ?????//設置連接密碼

②登錄到redis操作終端通過auth命令設置連接密碼

> auth ?密碼

?

Redis總結:

  1. Redis各種數據類型

String字符類型

Set ?get ?mset ?mget

(1)?List鏈表[應用在最新商品展示]:

lpush ?lrange ??rpop ??llen ??ltrim ??rpush ?lpop

(2)?Set集合[應用在促銷商品]:

sadd ?srem ?smove ?scard ??sismember ?sinter ?sunion ?sdiff ?smembers

(3)?SortSet排序集合[應用在熱賣商品]:

zadd ?zrem ?zrange ?zrevrange ?zcard ?zremrangebyrank

(4)?Hash: ?

hset ?hget ?hmset ?hmget

  1. 持久化

(1)?rdb 快照 ?dump.rdb ???頻率:15分鐘 ?5分鐘 ?1分鐘 ???bgsave

(2)?aof ?追加 ???bgrewriteaof

遠程操作:./redis-cli ?-h ?ip地址 ?-p 端口 ?-a ?密碼 ??bgsave/bgrewriteaof

?

PHP操作redis

① 實例化對象

$redis = new Redis();

② 連接redis服務

//臨時連接,長時間不操作,則會自動斷開

//該連接適合”瀏覽器的http”的一次性請求

$redis -> connect('192.168.18.121',6379);

//長連接,客戶端不手動發起關閉,則不會自己關閉

//服務器后臺使用,該程序24小時不中斷執行,就適合使用該長連接

$redis -> pconnect('192.168.18.121',6379);

③設置連接密碼

$redis -> auth(密碼);

④選擇數據庫[默認操作0標號數據庫]

$redis -> select(0-15);

string操作

$redis->set(key, value);

$redis->get(key);

$redis->mset([key=>value,key=>value,key=>value...]);

$redis->mget([key1,key2,key3]);

?

?

list相關操作

lPush

$redis->lPush(key, value);

rPush

$redis->rPush(key, value);

lPop/rPop

$redis->lPop('key');

lRange

$redis->lRange('key1', 0, -1);

lTrim

$redis->lTrim('key', start, end);

?

?

SET操作相關

sAdd

$redis->sAdd(key , value);

sRem

$redis->sRem('key1', 'set2');

sMove

$redis->sMove(seckey, dstkey, value);

sIsMember

$redis->sIsMember(key, value);

$redis->sCard('key')

sInter

$redis->sInter(array('key1', 'key2')) or $redis->sInter('key1', 'key2')

sUnion

$redis->sUnion('s0', 's1', 's2');

?

zsetsorted set)操作相關

$redis->zAdd('key', 5, 'val5');

$redis->zRange('key', 0, -1);

$redis->zRange('key1', 0, -1); // with scores $redis->zRange('key1', 0, -1, true);

zRem(key, member) :刪除名稱為keyzset中的元素member

$redis->zAdd('key', 10, 'val10');

$redis->zDelete('key', 'val2');

$redis->zRange('key', 0, -1);

$redis->zAdd('key', 10, 'val10');

$redis->zRevRange('key', 0, -1); // with scores $redis->zRevRange('key', 0, -1, true);

zRemRangeByScore, zDeleteRangeByScore

$redis->zRemRangeByScore('key', start, end);

?

轉載于:https://www.cnblogs.com/lovecatcher/p/9067769.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389608.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389608.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389608.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WIN10下ADB工具包安裝的教程和總結 --201809

ADB(Android Debug Bridge)是Android SDK中的一個工具, 使用ADB可以直接操作管理Android模擬器或者真實的Andriod設備。 ADB主要功能有: 在Android設備上運行Shell(命令行)管理模擬器或設備的端口映射在計算機和設備之間上傳/下載文件將電腦上的本地APK軟…

1816. 截斷句子

1816. 截斷句子 句子 是一個單詞列表,列表中的單詞之間用單個空格隔開,且不存在前導或尾隨空格。每個單詞僅由大小寫英文字母組成(不含標點符號)。 例如,“Hello World”、“HELLO” 和 “hello world hello world”…

spark的流失計算模型_使用spark對sparkify的流失預測

spark的流失計算模型Churn prediction, namely predicting clients who might want to turn down the service, is one of the most common business applications of machine learning. It is especially important for those companies providing streaming services. In thi…

峰識別 峰面積計算 peak detection peak area 源代碼 下載

原文:峰識別 峰面積計算 peak detection peak area 源代碼 下載Comparative analysis of peak-detection techniques for comprehensive two-dimensional chromatography http://www.docin.com/p-172045359.html http://terpconnect.umd.edu/~toh/spectrum/ipeak.html R…

區塊鏈開發公司談區塊鏈與大數據的關系

在過去的兩千多年的時間長河中,數字一直指引著我們去探索很多未知的科學世界。到目前為止,隨著網絡和信息技術的發展,一切與人類活動相關的活動,都直接或者間接的連入了互聯網之中,一個全新的數字化的世界展現在我們的…

Jupyter Notebook的15個技巧和竅門,可簡化您的編碼體驗

Jupyter Notebook is a browser bases REPL (read eval print loop) built on IPython and other open-source libraries, it allows us to run interactive python code on the browser.Jupyter Notebook是基于IPL和其他開源庫構建的基于REPL(讀取評估打印循環)的瀏覽器&#…

給定有權無向圖的鄰接矩陣如下,求其最小生成樹的總權重,代碼。

#include<bits/stdc.h> using namespace std; #define INF 0x3f3f3f3f const int maxn 117; int m[maxn][maxn]; int vis[maxn], low[maxn]; /* 對于這道題目來將&#xff0c;m就是臨接矩陣&#xff0c;vis是訪問標記數組&#xff0c;low是最短距離數組 */ int n; int …

Ubuntu-16-04-編譯-Caffe-SSD

該來的還是要來 之前為了偷懶想到使用 Docker 回避 Caffe SSD 編譯的難題。結果&#xff0c;「天道好輪回&#xff0c;蒼天饒過誰」。Docker 鏡像內無法調用 GUI 顯示以及攝像頭&#xff0c;沒法跑 ssd_pascal_webcam.py 做實時 Object Detection。所以沒辦法又得重新嘗試編譯 …

bi數據分析師_BI工程師和數據分析師的5個格式塔原則

bi數據分析師Image by Author圖片作者 將美麗融入數據 (Putting the Beauty in Data) Have you ever been ravished by Vizzes on Tableau Public that look like only magic could be in play to display so much data in such a pleasing way?您是否曾經被Tableau Public上的…

BSOJ 2423 -- 【PA2014】Final Zarowki

Description 有n個房間和n盞燈&#xff0c;你需要在每個房間里放入一盞燈。每盞燈都有一定功率&#xff0c;每間房間都需要不少于一定功率的燈泡才可以完全照亮。 你可以去附近的商店換新燈泡&#xff0c;商店里所有正整數功率的燈泡都有售。但由于背包空間有限&#xff0c;你…

WPF綁定資源文件錯誤(error in binding resource string with a view in wpf)

報錯&#xff1a;無法將“***Properties.Resources.***”StaticExtension 值解析為枚舉、靜態字段或靜態屬性 解決辦法&#xff1a;嘗試右鍵單擊在Visual Studio解決方案資源管理器的資源文件&#xff0c;并選擇屬性選項&#xff0c;然后設置自定義工具屬性 PublicResXFile cod…

因果推論第六章

因果推論 (Causal Inference) This is the sixth post on the series we work our way through “Causal Inference In Statistics” a nice Primer co-authored by Judea Pearl himself.這是本系列的第六篇文章&#xff0c;我們將通過Judea Pearl本人與他人合著的《引誘統計學…

如何優化網站加載時間

一、背景 我們要監測網站的加載情況&#xff0c;可以使用 window.performance 來簡單的檢測。 window.performance 是W3C性能小組引入的新的API&#xff0c;目前IE9以上的瀏覽器都支持。一個performance對象的完整結構如下圖所示&#xff1a; memory字段代表JavaScript對內存的…

VMWARE VCSA 6.5安裝過程

https://www.tech-coffee.net/step-by-step-deploy-vcenter-server-appliance-vcsa-6-5/ vcsa 6.0&#xff0c;6.5 注冊機下載 鏈接:https://pan.baidu.com/s/1X5V-iWpvxozrwE7Ji099jw 密碼:jt8l 轉載于:https://www.cnblogs.com/flyhgx/p/9073485.html

熊貓數據集_處理熊貓數據框中的列表值

熊貓數據集Have you ever dealt with a dataset that required you to work with list values? If so, you will understand how painful this can be. If you have not, you better prepare for it.您是否曾經處理過需要使用列表值的數據集&#xff1f; 如果是這樣&#xff0…

聊聊jdk http的HeaderFilter

序 本文主要研究一下jdk http的HeaderFilter。 FilterFactory java.net.http/jdk/internal/net/http/FilterFactory.java class FilterFactory {// Strictly-ordered list of filters.final LinkedList<Class<? extends HeaderFilter>> filterClasses new Linked…

旋轉變換(一)旋轉矩陣

1. 簡介 計算機圖形學中的應用非常廣泛的變換是一種稱為仿射變換的特殊變換&#xff0c;在仿射變換中的基本變換包括平移、旋轉、縮放、剪切這幾種。本文以及接下來的幾篇文章重點介紹一下關于旋轉的變換&#xff0c;包括二維旋轉變換、三維旋轉變換以及它的一些表達方式&#…

數據預處理 泰坦尼克號_了解泰坦尼克號數據集的數據預處理

數據預處理 泰坦尼克號什么是數據預處理&#xff1f; (What is Data Pre-Processing?) We know from my last blog that data preprocessing is a data mining technique that involves transforming raw data into an understandable format. Real-world data is often incom…

Pytorch中DNN入門思想及實現

DNN全連接層&#xff08;線性層&#xff09; 計算公式&#xff1a; y w * x b W和b是參與訓練的參數 W的維度決定了隱含層輸出的維度&#xff0c;一般稱為隱單元個數&#xff08;hidden size&#xff09; b是偏差值&#xff08;本文沒考慮&#xff09; 舉例&#xff1a; 輸…

IDEA去除mapper.xml文件中的sql語句的背景色

2019獨角獸企業重金招聘Python工程師標準>>> IDEA版本 2017.3 mapper.xml文件中的sql語句&#xff0c;總是黃色一大片&#xff0c;看起來不舒服。 按如下設置進行設置即可 此時設置完還有點背景色 再進行一個設置 Ok,完美解決 轉載于:https://my.oschina.net/u/3939…