0003-存入redis數據庫

代碼

import redis
import string
import random


def base_str():
    return string.ascii_letters + string.digits


KEY_VALUE = 20
KEY_NUMBER = 200
r = redis.Redis(host='127.0.0.1', port=6379)


result = []
for i in range(200):
    st = [random.choice(base_str()) for j in range(20)]
    st = ''.join(st)
    r.lpush('key', st)

print(r.lrange('key', 0, -1))

Redis的操作

1、連接操作相關的命令
quit:關閉連接(connection)
auth:簡單密碼認證

2、對value操作的命令
exists(key): 確認一個key是否存在
del(key): 刪除一個key
type(key): 返回值的類型
keys(pattern):返回滿足給定pattern的所有key
randomkey: 隨機返回key空間的一個key
rename(oldname, newname):將key由oldname重命名為newname,若newname存在則刪除newname表示的key
dbsize: 返回當前數據庫中key的數目
expire: 設定一個key的活動時間(s)
ttl: 獲得一個key的活動時間
select(index): 按索引查詢
move(key, dbindex):將當前數據庫中的key轉移到有dbindex索引的數據庫
flushdb: 刪除當前選擇數據庫中的所有key
flushall: 刪除所有數據庫中的所有key

3、對String操作的命令
set(key, value): 給數據庫中名稱為key的string賦予值value
get(key): 返回數據庫中名稱為key的string的value
getset(key, value):給名稱為key的string賦予上一次的value
mget(key1, key2,…, key N): 返回庫中多個string(它們的名稱為key1,key2…)的value
setnx(key, value): 如果不存在名稱為key的string,則向庫中添加string,名稱為key,值為value
setex(key, time, value): 向庫中添加string(名稱為key,值為value)同時,設定過期時間time
mset(key1, value1, key2, value2,…key N, value N): 同時給多個string賦值,名稱為key i的string賦值value i
msetnx(key1, value1, key2, value2,…key N, value N):如果所有名稱為key i的string都不存在,則向庫中添加string,名稱key i賦值為value i
incr(key):名稱為key的string增1操作
incrby(key, integer):名稱為key的string增加integer
decr(key):名稱為key的string減1操作
decrby(key, integer):名稱為key的string減少integer
append(key, value):名稱為key的string的值附加value
substr(key, start, end):返回名稱為key的string的value的子串

4、對List操作的命令
rpush(key, value):在名稱為key的list尾添加一個值為value的元素
lpush(key, value):在名稱為key的list頭添加一個值為value的 元素
llen(key):返回名稱為key的list的長度
lrange(key, start, end):返回名稱為key的list中start至end之間的元素(下標從0開始,下同)
ltrim(key, start, end):截取名稱為key的list,保留start至end之間的元素
lindex(key, index):返回名稱為key的list中index位置的元素
lset(key, index, value):給名稱為key的list中index位置的元素賦值為value
lrem(key, count, value):刪除count個名稱為key的list中值為value的元素。
count為0,刪除所有值為value的元素,count>0從頭至尾刪除count個值為value的元素,count<0從尾到頭刪除|count|個值為value的元素。
lpop(key):返回并刪除名稱為key的list中的首元素 rpop(key):返回并刪除名稱為key的list中的尾元素
blpop(key1, key2,… key N, timeout):lpop命令的block版本。
即當timeout為0時,若遇到名稱為key i的list不存在或該list為空,則命令結束。
如果timeout>0,則遇到上述情況時,等待timeout秒,如果問題沒有解決,則對keyi+1開始的list執行pop操作。
brpop(key1, key2,… key N, timeout):rpop的block版本。參考上一命令。
rpoplpush(srckey, dstkey):返回并刪除名稱為srckey的list的尾元素,并將該元素添加到名稱為dstkey的list的頭部

5、對Set操作的命令
sadd(key, member):向名稱為key的set中添加元素member
srem(key, member) :刪除名稱為key的set中的元素member
spop(key) :隨機返回并刪除名稱為key的set中一個元素
smove(srckey, dstkey, member) :將member元素從名稱為srckey的集合移到名稱為dstkey的集合
scard(key) :返回名稱為key的set的基數
sismember(key, member) :測試member是否是名稱為key的set的元素
sinter(key1, key2,…key N) :求交集
sinterstore(dstkey, key1, key2,…key N) :求交集并將交集保存到dstkey的集合
sunion(key1, key2,…key N) :求并集
sunionstore(dstkey, key1, key2,…key N) :求并集并將并集保存到dstkey的集合
sdiff(key1, key2,…key N) :求差集
sdiffstore(dstkey, key1, key2,…key N) :求差集并將差集保存到dstkey的集合
smembers(key) :返回名稱為key的set的所有元素
srandmember(key) :隨機返回名稱為key的set的一個元素

6、對zset(sorted set)操作的命令
zadd(key, score, member):向名稱為key的zset中添加元素member,score用于排序。如該元素已存在,則根據score更新該元素的順序。
zrem(key, member) :刪除名稱為key的zset中的元素member
zincrby(key, increment, member) :如果在名稱為key的zset中已經存在元素member,則該元素的score增加increment;
否則向集合中添加該元素,其score的值為increment
zrank(key, member) :返回名稱為key的zset(元素已按score從小到大排序)中member元素的rank(即index,從0開始),
若沒有member元素,返回“nil”
zrevrank(key, member) :返回名稱為key的zset(元素已按score從大到小排序)中member元素的rank(即index,從0開始),
若沒有member元素,返回“nil”
zrange(key, start, end):返回名稱為key的zset(元素已按score從小到大排序)中的index從start到end的所有元素
zrevrange(key, start, end):返回名稱為key的zset(元素已按score從大到小排序)中的index從start到end的所有元素
zrangebyscore(key, min, max):返回名稱為key的zset中score >= min且score <= max的所有元素
zcard(key):返回名稱為key的zset的基數
zscore(key, element):返回名稱為key的zset中元素element的score
zremrangebyrank(key, min, max):刪除名稱為key的zset中rank >= min且rank <= max的所有元素
zremrangebyscore(key, min, max) :刪除名稱為key的zset中score >= min且score <= max的所有元素
zunionstore / zinterstore(dstkeyN, key1,…,keyN, WEIGHTS w1,…wN, AGGREGATE SUM|MIN|MAX):對N個zset求并集和交集,
并將最后的集合保存在dstkeyN中。對于集合中每一個元素的score,在進行AGGREGATE運算前,都要乘以對于的WEIGHT參數。
如果沒有提供WEIGHT,默認為1。默認的AGGREGATE是SUM,即結果集合中元素的score是所有集合對應元素進行SUM運算的值,
而MIN和MAX是指,結果集合中元素的score是所有集合對應元素中最小值和最大值。

7、對Hash操作的命令
hset(key, field, value):向名稱為key的hash中添加元素field<—>value
hget(key, field):返回名稱為key的hash中field對應的value
hmget(key, field1, …,field N):返回名稱為key的hash中field i對應的value
hmset(key, field1, value1,…,field N, value N):向名稱為key的hash中添加元素field i<—>value i
hincrby(key, field, integer):將名稱為key的hash中field的value增加integer
hexists(key, field):名稱為key的hash中是否存在鍵為field的域
hdel(key, field):刪除名稱為key的hash中鍵為field的域
hlen(key):返回名稱為key的hash中元素個數
hkeys(key):返回名稱為key的hash中所有鍵
hvals(key):返回名稱為key的hash中所有鍵對應的value
hgetall(key):返回名稱為key的hash中所有的鍵(field)及其對應的value

8、持久化
save:將數據同步保存到磁盤
bgsave:將數據異步保存到磁盤
lastsave:返回上次成功將數據保存到磁盤的Unix時戳
shundown:將數據同步保存到磁盤,然后關閉服務

9、遠程服務控制
info:提供服務器的信息和統計
monitor:實時轉儲收到的請求
slaveof:改變復制策略設置
config:在運行時配置Redis服務器

新知識

Redis有的數據結構,集合(set)無重復元素并且無序,隊列(list),哈西表(hash),String有重復元素的集合,有序集合(zset)
Redis可用于數據存入Mysql/MongoDB之前的緩存,因為數據存儲在內存中,所以緩存速度十分快,效率很高
啟動Redis:redis-server

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,646評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,595評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,560評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,035評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,814評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,224評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,301評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,444評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,988評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,804評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,998評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,544評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,237評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,665評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,927評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,706評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,993評論 2 374

推薦閱讀更多精彩內容

  • 本文為筆者對在學習Redis過程中所收集資料的一個總結,目的是為了以后方便回顧相關的知識,大部分為非原創內容。特此...
    EakonZhao閱讀 14,472評論 0 9
  • 非原創,記錄。 1、連接操作相關的命令 quit:關閉連接(connection) auth:簡單密碼認證 2、對...
    FocusOnMyself閱讀 407評論 0 0
  • phpredis是php的一個擴展Redis::__construct構造函數$redis = new Redis...
    hello大象閱讀 766評論 0 2
  • PHP-redis中文文檔 phpredis是php的一個擴展,效率是相當高有鏈表排序功能,對創建內存級的模塊業務...
    神秘者007閱讀 2,753評論 0 2
  • 一、運用非暴力溝通觀察 觀察 :昨天早上我聽見媽媽對夢夢說:“夢夢,筷子放進書包了嗎?把筷子放進書包。...
    愛笑的布袋子閱讀 680評論 0 0