go redis使用之String字串

2021-10-07 15:06:43 字數 3541 閱讀 1459

-> go-redis list列表使用詳解

-> go-redis hash使用詳解

-> go-redis set集合使用詳解

-> go-redis zset有序集合使用詳解

基本型別:字串操作(單個字串最大512m)

func

getredisclient()

*redis.client)}

func

redistest

(cli *redis.client)

fmt.

printf

("name:%v\n"

,name)

// name:jack

fmt.

println

("---------mset/mget:同時插入獲取多個值---------"

) err=cli.

mset

("k1"

,"v1"

,"k2"

,"v2"

,"k3"

,"v3").

err(

)if err !=

nil err=cli.

mset

("k1"

,"v1"

,"k2"

,"v2").

err(

) vals1:=

make([

]inte***ce,3

) vals1,err=cli.

mget

("k1"

,"k2"

,"k3").

result()

if err !=

nilfor

_, item :=

range vals1

// 判斷key是否存在,可同時判斷多個,不存在為:0,每存在乙個+1

fmt.

println

(cli.

exists

("name"

,"k1"

,"k2").

val())

// 都存在:3

fmt.

println

(cli.

exists

("name9999"

,"k1"

,"k2").

val())

// 只有k1k2存在:2

// 獲取字串長度

fmt.

println

(cli.

strlen

("name").

val())

//4 fmt.

println()

cli.

("name",)

fmt.

println

(cli.

get(

"name").

val())

err=cli.

("newname"

,"tom").

err(

)// 追加不存在的key的值,新建!

if err !=

nil fmt.

println

(cli.

get(

"newname").

val())

// tom

// getrange 索引是前閉後閉,也就是前後都包含,並且不會修改原資料

fmt.

println

("---------getrange:擷取value,end=-1擷取到末尾---------"

) fmt.

println

("擷取後的name:"

,cli.

getrange

("name",0

,3).

val())

//擷取後的name: jack

// setrange 從offset開始替換,會修改原資料

fmt.

println

("---------setrange:替換value---------"

) cli.

setrange

("name",5

,"zzzz").

val(

) fmt.

println

("替換後的name:"

,cli.

get(

"name").

val())

// 替換後的name: jack-zzzznd

fmt.

println

("---------setnx:如果key不存在,儲存key:value,若key存在,儲存失敗---------"

) err=cli.

setnx

("name1"

,"setnx_name"

,time.second*10)

.err()

if err !=

nil fmt.

println

(cli.

get(

"name1").

val())

fmt.

println

("----------遞增,步長為1:如果key不存在,那麼key的值會先被初始化為0,在執行incr操作------------"

) cli.

incr

("incr"

) fmt.

println

(cli.

get(

"incr").

val())

fmt.

println

("----------遞減,步長為1:如果key不存在,那麼key的值會先被初始化為0,在執行incr操作------------"

) cli.

decr

("decr"

) fmt.

println

(cli.

get(

"decr").

val())

fmt.

println

("----------遞增,設定步長:如果key不存在,那麼key的值會先被初始化為0,在執行incr操作------------"

) cli.

incrby

("incrby",2

) fmt.

println

(cli.

get(

"incrby").

val())

fmt.

println

("----------遞減,設定步長:如果key不存在,那麼key的值會先被初始化為0,在執行incr操作------------"

) cli.

decrby

("decrby",5

) fmt.

println

(cli.

get(

"decrby").

val())

}func

main()

go redis使用之List列表

go redis string字串操作詳解?go redis hash雜湊操作詳解?go redis set集合操作詳解?go redis zset有序集合操作詳解?基本的資料型別 list 列表 在redis裡,可以把list作為棧 佇列 阻塞佇列 在redis裡,所有的list命令都是l開頭的 ...

go redis使用之Hash字典

go redis list列表使用詳解 go redis string字串使用詳解 go redis set集合使用詳解 go redis zset使用詳解 在redis中,hash雜湊被稱為字典 dictionary redis的字典使用雜湊表作為底層實現 hash更適合用來儲存物件,例如 use...

redis 使用go redis實現點讚投票功能

需要記錄的資訊 最後固定時間間隔 採用定時任務 取出 redis 中所有點讚資料存入mysql中或者做持久化。set中的資料特徵是 無序,不重複,所以 如果當前使用者點讚的話,判斷set中是否有此成員。127.0 0.1 6379 sismember like id1 userid1 integer...