国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

Redis學(xué)習(xí)筆記之redis基礎(chǔ)

2024-07-21 02:52:51
字體:
供稿:網(wǎng)友

資料來源:http://www.atguigu.com/download.shtml

一,redis是什么?

Redis:REmote DIctionary Server(遠(yuǎn)程字典服務(wù)器),是一個(gè)用C語言編寫的,遵守BSD協(xié)議,高性能的(key/value)分布式內(nèi)存數(shù)據(jù)庫(開源),基于內(nèi)存運(yùn)行并支持持久化,是當(dāng)前最熱門的NoSql數(shù)據(jù)庫之一,也被人們稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器。

二,redis的特點(diǎn)

支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤中,重啟的時(shí)候可以再次加載進(jìn)行使用。

Redis不僅僅支持簡單的key-value類型的數(shù)據(jù),同時(shí)還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。

Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份

三,永遠(yuǎn)的hello world

安裝redis就不多說了,解壓安裝包之后再在解壓目錄make,makeinstall。查看默認(rèn)安裝目錄(注,多余的rdb文件和log文件是我自己新建的):

這里寫圖片描述

redis-benchmark: 性能測試工具

redis-check-aof:修復(fù)有問題的AOF文件

redis-check-dump:修復(fù)有問題的dump.rdb文件

redis-cli:客戶端,操作入口

redis-sentinel:redis集群使用

redis-server:Redis服務(wù)器啟動(dòng)命令

為了不改變默認(rèn)配置,將redis.conf(redis的解壓目錄中)拷貝出來,保存在其他目錄,如我保存在/root/myredis目錄下。

修改redis.conf文件將里面的daemonize no 改成 yes,讓服務(wù)在后臺啟動(dòng)。

啟動(dòng)redis:

redis-server /root/myredis/redis.conf #設(shè)置Redis服務(wù)端啟動(dòng)配置文件redis-cli -p 6379#啟動(dòng)Redis客戶端進(jìn)程

測試連通性

127.0.0.1:6379> pingPONG127.0.0.1:6379>

helloworld示例:

127.0.0.1:6379> set hello HelloWorldOK127.0.0.1:6379> get hello"HelloWorld"

四,雜項(xiàng)知識

redis默認(rèn)16個(gè)數(shù)據(jù)庫,類似數(shù)組下標(biāo)從零開始,初始默認(rèn)使用零號庫

Select 命令切換數(shù)據(jù)庫

Dbsize 查看當(dāng)前數(shù)據(jù)庫的key的數(shù)量

Flushdb:清空當(dāng)前庫

Flushall:通殺全部庫

統(tǒng)一密碼管理:每一個(gè)數(shù)據(jù)庫都是同樣密碼

redis索引都是從零開始,啟動(dòng)端口默認(rèn)是6379

五,redis的key和五大數(shù)據(jù)類型

key: keys * 查看數(shù)據(jù)庫中所有的鍵

127.0.0.1:6379> keys *1) "hello"

exists key hello 判斷某個(gè)key是否存在

127.0.0.1:6379> exists key hello(integer) 1

expire key 秒鐘:為給定的key設(shè)置過期時(shí)間

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

數(shù)據(jù)類型之String類型:string是redis最基本的類型,你可以理解成與Memcached一模一樣的類型,一個(gè)key對應(yīng)一個(gè)value。

string類型是二進(jìn)制安全的。意思是redis的string可以包含任何數(shù)據(jù)。比如jpg圖片或者序列化的對象 。一個(gè)redis中字符串value最多可以是512M

set/get/del/append/strlen,添加、查詢、修改、刪除字符串以及得到字符串長度

127.0.0.1:6379> set key1 val1OK127.0.0.1:6379> get key1"val1"127.0.0.1:6379> strlen key1(integer) 4127.0.0.1:6379> append key1 haha(integer) 8127.0.0.1:6379> get key1"val1haha"127.0.0.1:6379> del key1(integer) 1127.0.0.1:6379> keys *1) "hello"

incr/decr/incrby/decrby,對字符串進(jìn)行加減,一定要是數(shù)字才能進(jìn)行加減

127.0.0.1:6379> incr key2(integer) 2127.0.0.1:6379> get key2"2"127.0.0.1:6379> decr key2(integer) 1127.0.0.1:6379> get key2"1"127.0.0.1:6379> incrby key2 3(integer) 4127.0.0.1:6379> get key2"4"127.0.0.1:6379> decrby key2 3(integer) 1127.0.0.1:6379> get key2"1"

getrange: 獲取指定范圍內(nèi)的值,從零到負(fù)一表示全部

setrange: 設(shè)置指定區(qū)域內(nèi)的值

127.0.0.1:6379> set key3 abcd123OK127.0.0.1:6379> GETRANGE key3 0 -1"abcd123"127.0.0.1:6379> SETRANGE key3 4 efgh(integer) 8127.0.0.1:6379> get key3"abcdefgh"

setex(set with expire)鍵秒值/setnx(set if not exist) setex:設(shè)置帶過期時(shí)間的key,動(dòng)態(tài)設(shè)置。格式:setex 鍵 秒值 真實(shí)值 setnx:只有在 key 不存在時(shí)設(shè)置 key 的值。

127.0.0.1:6379> setex k4 10 v4OK127.0.0.1:6379> ttl k4(integer) 5

mset/mget/msetnx

mset:同時(shí)設(shè)置一個(gè)或多個(gè) key-value 對。

mget:獲取所有(一個(gè)或多個(gè))給定 key 的值。

msetnx:同時(shí)設(shè)置一個(gè)或多個(gè) key-value 對,當(dāng)且僅當(dāng)所有給定 key 都不存在。

127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3OK127.0.0.1:6379> mget k1 k2 k31) "v1"2) "v2"3) "v3"127.0.0.1:6379> msetnx k4 v4 k5 v5(integer) 0127.0.0.1:6379> mget k4 k51) (nil)2) "v5"

數(shù)據(jù)類型之list: List(列表)底層實(shí)際是個(gè)鏈表

lpush/rpush/lrange,生成鏈表,lpush最先保存的序號在最前面

127.0.0.1:6379> LPUSH list01 1 2 3 4 5(integer) 5127.0.0.1:6379> LRANGE list01 0 -11) "5"2) "4"3) "3"4) "2"5) "1"127.0.0.1:6379> RPUSH list02 1 2 3 4 5(integer) 5127.0.0.1:6379> LRANGE list02 0 -11) "1"2) "2"3) "3"4) "4"5) "5"

lpop/rpop,得到最左邊的值和最右邊的值

127.0.0.1:6379> lpop list01"5"127.0.0.1:6379> rpop list01"1"127.0.0.1:6379> lrange list01 0 -11) "4"2) "3"3) "2"

lindex,按照索引下標(biāo)獲得元素(從上到下),llen獲取list的大小

127.0.0.1:6379> LINDEX list01 2"2"127.0.0.1:6379> LLEN list01(integer) 3

ltrim:截取指定索引區(qū)間的元素,格式是ltrim list的key 起始索引 結(jié)束索引,截取當(dāng)前范圍的值再賦值給key

rpoplpush 源列表 目的列表,移除列表的最后一個(gè)元素,并將該元素添加到另一個(gè)列表并返回

數(shù)據(jù)類型Set,無序集合

127.0.0.1:6379> sadd set01 1 1 2 2 3 3(integer) 3127.0.0.1:6379> SMEMBERS set01 1) "1"2) "2"3) "3"#判斷是否是set01集合成員127.0.0.1:6379> SISMEMBER set01 1(integer) 1

scard,獲取集合里面的元素個(gè)數(shù)

srem key value 刪除集合中元素

127.0.0.1:6379> SCARD set01(integer) 3127.0.0.1:6379> SREM set01 3(integer) 1127.0.0.1:6379> SMEMBERS set011) "1"2) "2"

srandmember key 某個(gè)整數(shù)(隨機(jī)出幾個(gè)數(shù))

spop key 隨機(jī)出棧

smove key1 key2 在key1里某個(gè)值 , 作用是將key1里的某個(gè)值賦給key2

127.0.0.1:6379> sadd set02 1 2 3 6 7 8(integer) 6127.0.0.1:6379> smembers set021) "1"2) "2"3) "3"4) "6"5) "7"6) "8"127.0.0.1:6379> sadd set01 1 2 3 4 5 6 7(integer) 5127.0.0.1:6379> smove set01 set02 5(integer) 1127.0.0.1:6379> smembers set021) "1"2) "2"3) "3"4) "5"5) "6"6) "7"7) "8"

交集(sinter key1 key2)/并集(sunion key1 key2)/差集(sdiff key1 key2)

數(shù)據(jù)類型之Hash:Hash(哈希,類似java里的Map

127.0.0.1:6379> hset user id 11(integer) 1127.0.0.1:6379> hget user id"11"127.0.0.1:6379> hmset user id 11 name zhangsan sex male OK127.0.0.1:6379> hgetall user1) "id"2) "11"3) "name"4) "zhangsan"5) "sex"6) "male"127.0.0.1:6379> hmget user id name1) "11"2) "zhangsan"127.0.0.1:6379> hdel user sex(integer) 1127.0.0.1:6379> hgetall user1) "id"2) "11"3) "name"4) "zhangsan"

hlen:獲取hash列表的鍵值對數(shù)目

127.0.0.1:6379> hmset user id 11 name zhangsan sex male age 22OK127.0.0.1:6379> hgetall user1) "id"2) "11"3) "name"4) "zhangsan"5) "sex"6) "male"7) "age"8) "22"127.0.0.1:6379> hlen user(integer) 4

hexists key 在key里面的某個(gè)值的key

hkeys/hvals key,獲取某個(gè)hash列表的key值和value值

hincrby key key1 n,hash列表某個(gè)key的value值加n

127.0.0.1:6379> hexists user id(integer) 1127.0.0.1:6379> hkeys user1) "id"2) "name"3) "sex"4) "age"127.0.0.1:6379> hvals user1) "11"2) "zhangsan"3) "male"4) "22"127.0.0.1:6379> hincrby user age 2(integer) 24127.0.0.1:6379> hvals user1) "11"2) "zhangsan"3) "male"4) "24"

數(shù)據(jù)類型之zset:sorted set,有序集合,在set基礎(chǔ)上,加一個(gè)score值。之前set是k1 v1 v2 v3,現(xiàn)在zset是k1 score1 v1 score2 v2。

127.0.0.1:6379> zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5(integer) 5127.0.0.1:6379> zrange zset01 0 -11) "v1"2) "v2"3) "v3"4) "v4"5) "v5"127.0.0.1:6379> zrange zset01 0 -1 withscores 1) "v1" 2) "60" 3) "v2" 4) "70" 5) "v3" 6) "80" 7) "v4" 8) "90" 9) "v5"10) "100"

zrangebyscore key 開始score 結(jié)束score

127.0.0.1:6379> zrangebyscore zset01 60 901) "v1"2) "v2"3) "v3"4) "v4"

limit用法:

127.0.0.1:6379> zrangebyscore zset01 60 90 limit 2 21) "v3"2) "v4"

zrem key 某score下對應(yīng)的value值,作用是刪除元素

zcount key score區(qū)間/zrank key values值,作用是獲得下標(biāo)值。zscore key 對應(yīng)值,獲得分?jǐn)?shù)

127.0.0.1:6379> zrank zset01 v4(integer) 3127.0.0.1:6379> zcount zset01 60 90(integer) 4127.0.0.1:6379> zscore zset01 v4"90"

逆序獲得zset集合值

127.0.0.1:6379> zrevrange zset01 0 -11) "v4"2) "v3"3) "v2"4) "v1"

根據(jù)分?jǐn)?shù)逆序獲取value值

127.0.0.1:6379> zrevrangebyscore zset01 90 601) "v4"2) "v3"3) "v2"4) "v1"

并不完整。。。。下次再加吧


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 合山市| 嘉鱼县| 江华| 乳山市| 教育| 兴宁市| 大田县| 泰州市| 花莲县| 惠安县| 陈巴尔虎旗| 广河县| 绍兴县| 张家港市| 和平区| 滨州市| 七台河市| 宽城| 京山县| 乌海市| 安仁县| 宁德市| 曲水县| 蓬安县| 扎赉特旗| 岱山县| 刚察县| 武夷山市| 阳江市| 从江县| 横峰县| 囊谦县| 新源县| 卓资县| 正定县| 靖西县| 德令哈市| 南皮县| 宜黄县| 临湘市| 元阳县|