亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                Redis的五種基本數據類型

                1、概述

                • Redis是一個由C語言開發(fā)的基于key-value形式的非關系型數據庫key-value:鍵值對【鍵:String,值:五種數據類型】非關系數據庫:NoSQL【Not Only SQL】關系型數據庫:由二維表的形式來存儲數據不是關系型數據庫,就是非關系型數據庫
                • 存儲介質默認是內存可以持久化到磁盤上
                • 官網中文:http://www.redis.cn/
                • 英文:https://redis.io/

                2、Redis的五種基本數據類型

                • string:字符串
                • hash:對象
                • list:有序列表
                • set:無序集合
                • zset:有序集合

                3、基本用法

                1、string

                set get getset mset mget

                setnx strlen append incr incrby

                decr decrby

                #設置key和value,正確返回OKset key valueset name zhangsan#獲取key對應的value值,若沒有返回nilget keyget name#返回key對應的value,再重新設置這個key的值getset key valuegetset name lily#設置多個鍵值對 正確返回OKmset k1 v1 k2 v2 …mset sex 1 age 20 address hz#獲取多對key對應的valuemget k1 k2 k3 …mget sex age address#設置key-value:如果key不存在,則設置,如果key存在,則什么都不做#成功返回1,失敗返回0setnx key valuesetnx phone 13577889900#計算key對應的value的長度strlen keystrlen phone#在原先的基礎之上進行字符串追加append key valueappend address xs#本來address的值是hz,現在就是hzxs#自增1,value是數值類型才能成功。如果key不存在,則直接以0為基礎,進行自增。如果這個值不是數值,則會報錯incr keyincr age#age本來是20,現在返回就是21#自增指定數量,value是數值類型才能成功incrby age 5#age本來是20,現在返回就是25#自減1,value是數值類型才能成功。decr keydecr age#age本來是0,現在返回就是-1#自減指定數量,value是數值類型才能成功decrby keydecrby age 20#age本來是30,現在返回就是10

                2、hash

                hset hmset hget hmget hkeys

                hvals hgetall hexists hlen hsetnx hdel

                #設置值,必須指定大key和小key、valuehset person name tom#設置多值hmset person sex 1 age 20#獲取單個小key對應的valuehget person sex#獲取多個小key對應的value們hmget person name age#獲取所有的小keyhkeys person#獲取所有的小key對應的valueshvals person#獲取所有大key中的鍵值對hgetall person#判斷小key是否存在hexists person age#求大key中小key的數量hlen person#設置小key【小key不存在,則設置成功,如果存在,則什么都不做】hsetnx person age 25#刪除hdel person age

                3、list

                • 增加數據:兩種方式左邊增加數據:左壓棧,后增加的數據在左邊右邊增加數據:右壓棧,后增加的數據在右邊
                • 讀取數據讀取數據從左往右

                lpush rpush lrange llen lindex lpop rpop rpoplpush lrem

                #左壓棧lpush key v1 v2 …#特征:存入的數據順序跟讀取順序相反#右壓棧rpush key v1 v2 …#特征:存入的數據順序跟讀取順序相同#查詢列表中的數據#下標從0開始,如果要讀到最末尾,endIndex就是-1lrange key startIndex endIndexlrange key 0 -1#獲取列表元素個數llen key#獲取指定索引的元素,index表示索引lindex key index#獲取指定索引為3的元素lindex key 3#從左邊彈出一個元素[獲取最左邊的元素,再刪除它]lpop key#從右邊彈出一個元素rpop key#從一個列表的右邊彈出元素,再追到加另一個列表的左邊rpoplpush 源列表 目標列表#移除count個的value值lrem key count valuelrem names 2 tom#刪除names列表中2個tom【是從左開始移除】

                4、set

                sadd scard smembers sismember spop sdiff sinter sunion

                sdiffstore sinterstore sunionstore smove

                #存值sadd myset aa bb cc#返回存入的個數#獲取集合長度scard myset#獲取集合元素smembers myset#判斷元素是否在集合中。存在:返回1,不存在:返回0sismember myset cc#隨機彈出一個元素spop myset#隨機彈出指定個數元素spop myset 2#差集sdiff myset1 myset2#交集sinter myset1 myset2#并集sunion myset1 myset2#將交集結果存入到另一個集合中#sdiffstore 存儲結果的集合名 操作的集合一 操作的集合二sdiffstore myset3 myset1 myset2#將交集結果存入到另一個集合中sinterstore myset4 myset1 myset2#將并集結果存入到另一個集合中sunionstore myset5 myset1 myset2#將myset1中的aa元素移動到myset3smove myset1 myset3 aa

                5、zset(sorted set)

                zadd zcard zrange zincrby zscore zinterstore zrangebyscore zrevrangebyscore

                zrem zrank zremrangebyscore

                #向有序集合中增加元素#zadd 集合名 分數1 名稱1 分數2 名稱2 …zadd tuhaobang 10 zhangsan 80 lisi 30 wangwu#返回插入的數量#獲取集合中元素的數量zcard tuhaobang#獲取集合中指定區(qū)間的元素名稱,如果后面的索引是-1,則返回所有元素名稱zrange tuhaobang 0 -11) “zhangsan”2) “wangwu”3) “lisi”#獲取集合所有的元素,包括名稱和分數【是從小到大排序】zrange tuhaobang 0 -1 withscores1) “zhangsan”2) “10”3) “wangwu”4) “30”5) “lisi”6) “80”#獲取集合前兩位元素的名稱和分數zrange tuhaobang 0 1 withscores1) “zhangsan”2) “10”3) “wangwu”4) “30”#為集合中指定的名稱的元素增加分數zincrby tuhaobang 50 zhangsan#返回增加后的分數#返回集合中指定名稱的分數zscore tuhaobang wangwu#把myzset1和myzset2根據元素名稱求出交集,并把相同名稱的value加在一起,得到元素名稱的新分數,存入到新集合中,成功返回的是交集的個數#zinterstore 目標集合 操作集合的數量 集合一 集合二 …ZINTERSTORE myzset3 2 myzset1 myzset2#zrangebyscore 集合名稱 小分數 大分數 [withscores] [limit 第幾條開始顯示 顯示數量]#在不知道當前集合中最大值和最小值的情況下,-inf代表最小值 +inf代表最大值#獲取tuhaobang集合中所有元素名稱及分數zrangebyscore tuhaobang -inf +inf withscores#獲取tuhaobang集合中第一個元素名稱及分數zrangebyscore tuhaobang -inf +inf withscores limit 0 1#獲取tuhaobang集合中分數在50-100之間的所有元素名稱及分數zrangebyscore tuhaobang 50 100 withscores#獲取tuhaobang集合中分數在50-100之間的前兩位元素名稱及分數zrangebyscore tuhaobang 50 100 withscores limit 0 2#按從大到小的順序進行排序,并獲取前2位zrevrangebyscore tuhaobang +inf -inf withscores limit 0 2#根據元素名刪除元素zrem key member [member…]#獲取集合中指定元素名稱對應的索引zrank tuhaobang lisi#刪除指定分數區(qū)間的元素[10,20],刪除成功返回刪除的個數,否則返回0zremrangebyscore tuhaobang 10 20

                4、通用命令

                • key相關

                #查找匹配規(guī)則的key, *:代表0到多個字符,?代表一個字符#查詢所有keykeys *#查詢keys中第二個字母為a的keykeys ?a*#判斷key是否存在,存在:返回1,不存在:返回0exists key#刪除key,刪除成功返回1,刪除不存在的key返回0del key#查看key剩余有效時間#ttl keyttl gender結果:返回剩余有效時間,如果已經過期:返回-2,如果沒有設置有效時間:返回-1#設置已經存在的key的過期時間,單位為秒expire key seconds#為已經存在的key設置過期時間,單位是毫秒pexpire key 毫秒#查看指定key的剩余存活時間,單位是毫秒pttl key#移除指定key的生存時間,永久的持久化persist key#獲取指定的key的value的數據類型type key#移動當前數據庫中對應的key到其他數據庫,dbindex是0-15move key dbindex

                • 數據庫相關

                #redis默認有16個數據庫,分別是 db0 – db15#查看當前數據庫下有多少keydbsize#切換數據庫,dbindex是0-15select dbindex#清空當前數據庫flushdb#清空所有數據庫中的數據flushall#實時監(jiān)控Redis服務接收到的命令【其他客戶端的操作,能夠被監(jiān)控到】monitor

                • 查看redis讀寫性能

                #redis寫的性能redis-benchmark set#redis讀的性能redis-benchmark get

                鄭重聲明:本文內容及圖片均整理自互聯網,不代表本站立場,版權歸原作者所有,如有侵權請聯系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年6月26日 06:31
                下一篇 2022年6月26日 06:31

                相關推薦

                聯系我們

                聯系郵箱:admin#wlmqw.com
                工作時間:周一至周五,10:30-18:30,節(jié)假日休息