字串是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的長度...