資料型別:string(字串),list(鍊錶),hash(雜湊),set(集合),zsort(有序集合)
預設16個資料庫,可通過配置檔案修改。
基本操作
關於訪問中文顯示時是亂碼,解決辦法是啟動客戶端時加入 --raw(redis-cli --raw)
config set requirepass 123456 設定密碼
auth 123456 身份驗證
ping 如果返回pong則連線成功
quit 退出
select 16 選擇資料庫
flushdb 清除當前資料庫
flushall 清除所有的資料庫
keys * 可以使用模糊查詢key,有三個萬用字元 *、?、。* 通配任意字元,? 通配單個字元, 通配某乙個字元。
randomkey 隨機獲取乙個key
exists key 查詢是否存在該key
type key 檢視key的型別
rename oldkey newkey 重新命名key,如果newkey 已經存在,則newkey的原值被覆蓋
del key1 key2 刪除key,返回刪除key的數量
move key dbid 移動key到哪乙個資料庫
expire key 1 設定過期時間單位秒(pexpire是毫秒)
ttl key 查詢key的生命週期,返回秒數(pttl返回毫秒)對於不存在的key、已經過期的key返回-2;永久有效的key,返回-1。
persist key 把指定的key設定為永久有效、
資料型別及操作
string(字串)
set a a 建立key為a值是a的資料
set a a ex 60 建立時設定60秒過期(或者set a a px 60000)ex、px 不能同時寫,否則以後面乙個時間為準。
setex a 60 a 建立時設定60秒過期(psetex指定毫秒)
set a a nx nx表示key不存在時執行操作,xx表示key存在時執行操作。(可以防止覆蓋已存在的資料)
setnx 當key不存在時建立(沒有setxx)
get a 獲取key為a的資料
mset k1 v1 k2 v2 kn vn 同時建立多個鍵值(mget、msetnx同理)
getset key value 賦值並獲取值
setrange key offset value 用 value 引數覆寫給定 key 所儲存的字串值,從偏移量 offset 開始。
getrange 獲取字串中[start, end]範圍的值字串下標左數從0開始,右數從-1開始。
start >= length,返回空字串。end >= length,擷取至字元結尾。
incr key 設定該key的值+1,值必須是數字才能加,如果key沒有值,則先賦值為0在加1.
incrby key 20 將該key的值增加指定的整數
incrbyfloat key 1.1 將該key的值增加指定的浮點數
decr key 設定該key的值-1(其它同理)
list(鍊錶)
以下命令 l 代表從頭部(左邊)開始的操作其相反的是 r 尾部(右邊)。
lpush key v1 v2 vn 把多個資料新增乙個列表的頭部(返回其大小)尾部 rpush
lpushx 當key存在時才新增
lrange key start end 檢視list在[start,end]的資料,
llen key 檢視list的大小
左數從0開始,右數從-1開始。所以想取出全部元素可以用lrange key 0 -1。
lpop key 返回並刪除煉表頭元素
rpop key 返回並刪除鍊錶尾部元素
lrem key count value 刪除count個與value相同的值
ltrim key start end 只保留在[start,end]區間的數,其餘的刪除
下標 0 表示列表的第乙個元素,以 1 表示列表的第二個元素,以此類推。 你也可以使用負數下標,以 -1 表示列表的最後乙個元素, -2 表示列表的倒數第二個元素,以此類推
lindex key index 返回索引為index的值
linsert key after|before v1 v2 在v1之後或之前新增值為v2的元素
lset key index value 設定index位的值
lpop key 彈出第乙個元素且返回該元素值
blpop key timeout 堵塞的彈出第乙個元素且返回該元素值。在超時時間(秒)內堵塞直到有值
brpoplpush 從列表中彈出乙個值,將彈出的元素插入到另外乙個列表中並返回它; 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止
hash(雜湊)
hash是乙個string型別的field和value的對映表,hash特別適合用於儲存物件。
hset user name tom 建立key為user ,域為name 值為tom的資料(類似鍵值對的值又是乙個鍵值對)
hget user name 獲取key為user,field為name的值
hsetnx key field value:當鍵不存在時才設定值
hgetall user 檢視該key下所有的field和value
hincryby user age 2 給制定的值設定增量(也可為負數,即減量)
hincrybyfloat user age 0.5 給制定的值設定浮點數增量(也可為負數,即浮點數減量)
hkeys user 獲取該key的所有的field
hvals user 獲取該key的所有的值
hlen key 獲取雜湊欄位的數量
hmset key f1 v1 f2 v2 fn vn 同時設定多個值
hget key f1 f2 fn 獲取多個值
set(集合)
集合是無序的字串集合,集合中的值是唯一的、無序的
sadd key m1 m2 mn 向乙個集合新增多個成員
smembers key 檢視集合的所有成員
scard key 檢視集合大小
sdiff key1 key2 keyn 返回多個集合的差集(交集是sinter,並集是sunion)
sdiffstore newset key1 key2 keyn 將多個集合的差集(交急sinterstore,並集是sunionstore)儲存到另乙個集合(這裡是newset)
sismember key member 判斷值是否是該集合的成員,是返回1,不是返回0
smove key1 key2 member (將乙個集合的資料移動到另乙個集合)將key1集合的member成員移動到key2集合
srandmember key count 隨機返回指定數量的成員
spop key count 隨機返回並刪除指定數量的成員
sort set(有序集合)
有序集合由唯一的,不重複的字串元素組成。有序集合中的每個元素都關聯了乙個分數(分數值可以是整數值或雙精度浮點數)。可以把有序看成hash和集合的混合體,分數即為hash的key。有序集合的成員是唯一的,但分數卻可以重複。有序集合中的元素是按序儲存的,不是請求時才排序的。
zadd key score1 value1 score2 value2 ··· 先有序集合新增多個資料分數
zrange key start end [withscores] 查詢zset在區間[start,end]的資料,withscores顯示分數,預設公升序(降序zrevrange)
zcard key 檢視zset的成員數
zcount key min max 返回zset的分數在區間[min,max]的成員數+inf表示正無窮,-inf表示負無窮
zincrby key num value 對zset對應的value的分數進行增加(增量值為num)
zinterstore newzset keynums key1 key2 ··· 去keynums個zset取交集(並集zunionstore)儲存到乙個新的有序集合(這裡指newzset)
zlexcount key min max 計算有序集合中指定字典區間內成員數量。(下圖例項)
zrangebylex key min max 返回指定區間的值
zrangebyscore key min max 通過分數返回有序集合指定區間內的成員
zrank key member 返回指定值的索引
zrem key member1 member2 ··· 刪除指定成員
zremrangebylex key min max 通過字典區間刪除
zremrangebyrank key start end 通過索引刪除
zremrangebyscore key min max 通過分數刪除
資料型別及基本操作
可正可負,沒有取值範圍限制進製 十進位制 二進位制 以0b或者0b開頭,如0b011,0b111 八進位制 以0o或者0o開頭 十六進製制 以0x或者0x開頭 浮點數存在取值範圍和精度存在限制,但常規計算可以忽略,取值範圍約為 10 308,精度數量級10 16 浮點數運算存在不確定尾數,不是bug...
redis 基本資料型別基本操作
string string hash hashmap list linkedlist set hashset sorted set tree set 設定數值資料減少指定範圍的值 設定資料的過期時間 psetex key milliseconds value 設定指定欄位的數值資料增加指定範圍的值 ...
redis的基本資料型別及基本操作 一
string型別是二進位制安全的,意思是redis可以包含任何資料,例如 序列化物件等等,下面是string型別的定義 其中buf用於存貯string的字元,free記錄剩餘可用的位元組數。如果只是redis只是使用string型別,那麼就可以認為是持久化特性的memcathe。下面的 介紹stri...