目錄
Redis数据库的学习与实践—redis的数据类型
Redis的数据类型:
1:Strings类型及操作:
2:Hashes类型及操作:
3:List类型及操作:
首頁 資料庫 mysql教程 【Redis2】Redis数据库的学习与实践—redis的数据类型

【Redis2】Redis数据库的学习与实践—redis的数据类型

Jun 07, 2016 pm 04:02 PM
redis 學習 實踐 數位 資料庫

127.0.0.1:6379 set name inter OK 127.0.0.1:6379 get name inter 127.0.0.1:6379 set name millan 127.0.0.1:6379 get name millan #第一种情况,setnx判断name存在值,所以后面的设值返回(integer)0,设值不成功 127.0.0.1:6379 set name inter OK 127.0.

  1. 127.0.0.1:6379 > set name inter
  2. OK
  1. 127.0.0.1:6379> get name
  2. “inter”
  1. 127.0.0.1:6379> set name millan
  2. 127.0.0.1:6379> get name
  3. “millan”
  1. #第一种情况,setnx判断name存在值,所以后面的设值返回(integer)0,设值不成功
  2. 127.0.0.1:6379> set name inter
  3. OK
  4. 127.0.0.1:6379> setnx name millan
  5. (integer) 0
  6. #对一个没有设过值的变量进行设值,返回(integer)1,通过get方法验证,设值成功
  7. 127.0.0.1:6379> setnx new_name inter
  8. (integer) 1
  9. 127.0.0.1:6379> get new_name
  10. "inter"
  1. #设置wind的value是hot,并且设置时间为10秒,10秒之内有效,10秒过后,此键值对失效
  2. 127.0.0.1:6379> setex wind 10 hot
  3. OK
  4. 127.0.0.1:6379> get wind
  5. "hot"
  6. 127.0.0.1:6379> get wind
  7. (nil)
  1. 127.0.0.1:6379> set name djy@163.com
  2. OK
  3. 127.0.0.1:6379> setrange name 4 gmail.com
  4. (integer) 13
  5. 127.0.0.1:6379> get name
  6. "djy@gmail.com"
  1. 127.0.0.1:6379> mset key1 djy1 key2 djy2 key3 djy3
  2. OK
  3. 127.0.0.1:6379> get key2
  4. "djy2"
  5. 127.0.0.1:6379> get key3
  6. "djy3"
  7. 127.0.0.1:6379> get key1
  8. "djy1"
  1. 127.0.0.1:6379> msetnx key1 djyisasmartguy key5 yes
  2. (integer) 0
  3. 127.0.0.1:6379> get key5
  4. (nil)
  5. 127.0.0.1:6379> get key1
  6. "djy1"
  1. 127.0.0.1:6379> getset key1 djyisasmartguy
  2. "djy1"
  3. 127.0.0.1:6379> get key1
  4. "djyisasmartguy"
  1. 127.0.0.1:6379> getrange key1 8 10
  2. "art"
  3. 127.0.0.1:6379>
  1. 127.0.0.1:6379> mget key1 key2
  2. 1) "djyisasmartguy"
  3. 2) "djy2"
  1. 127.0.0.1:6379> set key5 10
  2. OK
  3. 127.0.0.1:6379> incr key5
  4. (integer) 11
  1. #incrby key5 10是指增溢10次,如果是-10就是减10次
  2. 127.0.0.1:6379> incrby key5 10
  3. (integer) 21
  4. 127.0.0.1:6379> get key5
  5. "21"
  1. 127.0.0.1:6379> decr key5
  2. (integer) 20
  3. 127.0.0.1:6379> decrby key5 6
  4. (integer) 14
  1. 127.0.0.1:6379> get key1
  2. "djyisasmartguy"
  3. 127.0.0.1:6379> append key1 true
  4. (integer) 18
  5. 127.0.0.1:6379> get key1
  6. "djyisasmartguytrue"
  1. 127.0.0.1:6379> strlen key1
  2. (integer) 18

Redis数据库的学习与实践—redis的数据类型

Redis的数据类型:

1:Strings类型及操作:

String类型是最简单的类型,一个Key对应一个Value,String类型是二进制安全的。Redis的String可以包含任何数据,比如jpg图片或者序列化的对象。
(1)Set方法,设置key对应的值为String类型的value。
例如:设置一个name=inter的键值对:
取值:
覆盖值:
后面设置的值,会将之前设置的值给覆盖掉。
如果后面在设置值的时候不想覆盖之前的值,可以使用:setnx
(2)Setnx在操作的时候,会首先判断这个name里面是否存在值,只有当name里面不包含值的情况下,才会设置成功。(nx代表not exist的意思)
例如:
(3)setex
设置key对应的值为string类型的value,并指定此键值对对应的有效期。
在其他的设置方法中,不设置有效期,则代表其永久有效。
例如:
(4)setrange
设置指定key的value值的子字符串
(5)mset
一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置。
(6)msetnx
一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置,但是不会覆盖已经存在的key。
只要有一个键没有设置成功,那么其他一起设置的键都不会设置成功。
(7)get
获取key对应的string值,如果key不存在返回nil。
getset
设置key的新值,并返回key的旧值。
(8)getrange
获取key的value值的子字符串。
(9)mget
一次获取多个key的值,如果对应key不存在则对应返回nil。
(10)incr
自增溢,对key的值做加加操作,并返回新的值。
(11)incrby
同incr类似,加指定值,key不存在时候会设置key,并认为原来的value是0。
(12)decr
对key的值做减减操作。
(13)decrby
同decr类似,减指定值。
(14)append
给指定key的字符串追加value,返回新字符串值的长度。
(15)strlen
取指定key的value值的长度。

2:Hashes类型及操作:

Redis hash是一个string类型的field和value的映射表。它的添加,删除操作都是0(1)(平均)。Hash特别适合用于存储对象。相较于将对象的每个字段存成单个string类型。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。

hset

设置hash field为指定值,如果key不存在,则先创建。

127.0.0.1:6379> hset myhash field1 hello

(integer) 1

127.0.0.1:6379> hget myhash field1

"hello"

hsetnx

设置hash field为指定值,如果key不存在,则先创建。如果存在返回0。

127.0.0.1:6379> hsetnx myhash field1 helloyou

(integer) 0

hmset

同时设置hash的多个field。

127.0.0.1:6379> hmset myhash field2 helloyou field3 hellome

OK

127.0.0.1:6379> hmget myhash field2 field3

1) "helloyou"

2) "hellome"

hincrby

指定的hashfield加上给定值。

127.0.0.1:6379> hset myhash field4 30

(integer) 1

127.0.0.1:6379> hincrby myhash field4 10

(integer) 40

127.0.0.1:6379> hget myhash field4

"40"

127.0.0.1:6379>

hexists

测试指定field是否存在。

127.0.0.1:6379> hexists myhash field1

(integer) 1

hlen

返回指定hash的field数量。

127.0.0.1:6379> hlen myhash

(integer) 4

hdel

删除指定hash的field。

127.0.0.1:6379> hdel myhash field4

(integer) 1

127.0.0.1:6379>

hkeys

返回hash的所有field。

127.0.0.1:6379> hkeys myhash

1) "field1"

2) "field2"

3) "field3"

hvals

返回hash的所有value。

127.0.0.1:6379> hvals myhash

1) "hello"

2) "helloyou"

3) "hellome"

(10)hgetall

获取某个hash中全部的field和value。

127.0.0.1:6379> hgetall myhash

1) "field1"

2) "hello"

3) "field2"

4) "helloyou"

5) "field3"

6) "hellome"

3:List类型及操作:

List是一个链表结构,主要功能是push,pop,获取一个范围的所有值等等,操作中Key理解为链表的名字。

Redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过puth,pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列。

对Redis的数据类型的介绍就到这里,还有两种数据类型,Set类型和Zset类型就不详细介绍了。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

在PHP中使用MySQLi建立資料庫連線的詳盡教學 在PHP中使用MySQLi建立資料庫連線的詳盡教學 Jun 04, 2024 pm 01:42 PM

在PHP中使用MySQLi建立資料庫連線的詳盡教學

iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 Jul 18, 2024 am 05:48 AM

iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片

全球數字虛擬幣交易平台排行榜前十(2025權威排名) 全球數字虛擬幣交易平台排行榜前十(2025權威排名) Mar 06, 2025 pm 04:36 PM

全球數字虛擬幣交易平台排行榜前十(2025權威排名)

如何在PHP中處理資料庫連線錯誤 如何在PHP中處理資料庫連線錯誤 Jun 05, 2024 pm 02:16 PM

如何在PHP中處理資料庫連線錯誤

Go WebSocket 如何與資料庫整合? Go WebSocket 如何與資料庫整合? Jun 05, 2024 pm 03:18 PM

Go WebSocket 如何與資料庫整合?

如何在 Golang 中使用資料庫回呼函數? 如何在 Golang 中使用資料庫回呼函數? Jun 03, 2024 pm 02:20 PM

如何在 Golang 中使用資料庫回呼函數?

如何使用C++處理資料庫連線和操作? 如何使用C++處理資料庫連線和操作? Jun 01, 2024 pm 07:24 PM

如何使用C++處理資料庫連線和操作?

幣圈十大交易所2025年最新 數字貨幣app排行榜前十 幣圈十大交易所2025年最新 數字貨幣app排行榜前十 Feb 27, 2025 pm 06:33 PM

幣圈十大交易所2025年最新 數字貨幣app排行榜前十

See all articles