Redis之字串實戰

2021-09-25 10:17:18 字數 2213 閱讀 4256

字串是redis中最簡單的資料結構,可以儲存文字,也可以儲存數字,還可以儲存二進位制資料。針對型別不同,我們可以把它劃分為3大類,基於普通字串的操作、數字以及二進位制的操作。如下表常見命令

基本操作

數字操作

二進位制操作

set和get

incrby(增加)和decrby(減少)

setbit(設定二進位制的值)和getbit(獲取二進位制的值)

setnx(僅在鍵key不存在)

incr(增一)和decr(減一)

bitcount(計算值為1的二進位制位的數量)

getset(設定新值並返回舊值)

incrbyfloat

bitop(二進位制位運算)

strlen(長度)

getrange(範圍取值)和setrange(範圍設定)

mget、mset、msetnx(同時設定或獲取多個字串鍵的值)

計數器的實現

作用:記錄頁面被訪問的次數

呼叫的函式:incr、get

#!/usr/bin/env python

#-*- coding:utf8 -*-

import redis

class counter:

def __init__(self, key, client):

self.key = key

self.client = client

def incr(self, n=1):

counter = self.client.incr(self.key, n)

return int(counter)

def decr(self, n=1):

counter = self.client.decr(self.key, n)

return int(counter)

def reset(self, n=0):

counter = self.client.getset(self.key, n)

if counter is none:

counter = 0

return int(counter)

def get(self):

counter = self.client.get(self.key)

if counter is none:

print "none"

else:

print counter

if __name__=='__main__':

r=redis.redis(host='127.0.0.1',port=6379)

c=counter('page-counter',r)

c.incr()

c.incr()

#c.reset()

c.get()

效果圖:

原理:使用者id和位索引之間進行關聯

方案評價:

Redis之字串型別

重新定義了c語言中的字串 字串的實現 在sds.件中。在redis3.2之前的版本中,是如下儲存字串的 型別別名,用於指向 sdshdr 的 buf 屬性 typedef char sds 儲存字串物件的結構 struct sdshdr 示意圖 而在新版本中redis是如下儲存的。redis官網gi...

redis型別之字串

字串string 127.0.0.1 6379 exists name 判斷key存在 integer 1 integer 10 字串長度10 127.0.0.1 6379 get name 獲取key luhanhello 127.0.0.1 6379 strlen name integer 10...

Redis之String 字串型別

字串型別是redis中最為基礎的資料儲存型別,它在redis中是二進位制安全的,這便意味著該型別可以接受任何格式的資料,如jpeg影象資料或json物件描述資訊等。在redis中字串型別的value最多可以容納的資料長度是512m。命令原型 時間複雜度 命令描述 返回值o 1 追加後value的長度...