欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>Lua table类型学习笔记

Lua table类型学习笔记

2024-07-28 07:51:23 收藏本文 下载本文

“qweqweq126”通过精心收集,向本站投稿了3篇Lua table类型学习笔记,以下是小编为大家准备了Lua table类型学习笔记,欢迎参阅。

Lua table类型学习笔记

篇1:Lua table类型学习笔记

这篇文章主要介绍了Lua table类型学习笔记,本文讲解了table的基础知识和table库函数的使用以及面向对象编程实例,需要的朋友可以参考下

关系表类型,这是一个很强大的类型,我们可以把这个类型看作是一个数组。只是 C语言的数组,只能用正整数来作索引; 在Lua中,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。同样,在C语言中,数组的内容只允许一种类型;在 Lua中,你也可以用任意类型的值来作数组的内容,nil也可以。

基本介绍

注意三点:

第一,所有元素之间,总是用逗号 “,” 隔开;

第二,所有索引值都需要用 “[”和“]” 括起来;如果是字符串,还可以去掉引号和中括号; 即如果没有[]括起,则认为是字符串索引

第三,如果不写索引,则索引就会被认为是数字,并按顺序自动从 1往后编;

例如:

代码如下:

tt = {“hello” ,33}

value = 4

tab = {[tt] = “table”,key = value, [“flag” ] = nil, 11}

print(tab[tt])

print(tab.key)

print(tab[1 ])

以上写法都是对的。

look = {[www] = “ok”}这样是不对的,www没有赋值,所以默认为nil因此出错table index is nil

代码如下:

---

temp = 1

tab = {[temp] = 1, 11}

print(tab[temp]) --此时的结果是11,因为11没有显式对应的key,因此从1开始,如果前面定义了,则覆盖其value

代码如下:

---

temp = 2

tab = {[temp] = 1, 11}

temp = 1

print(tab[temp]) -- 结果是11,虽然定义时[temp] = 1,但是后来我们改变了temp的值,所以指向另外的key了

以上可知:

1.对于字符串,在{}定义时,可以key = value, 也可以[“flag”] = nil,索引都是string类型,对于非nil类型变量(包括字符串),都可以[variable]=value的方式

2.使用table时,对于字符串,可以通过.的方式访问,也可以通过[]方式访问。tab[a],tab[b],只要a==b那么tab[a]可以访问到tab[b]的值

3.不管定义索引时用的是常量还是变量,最终table中value的索引key是常量,不会随变量的改变而变化该value的key

嵌套

代码如下:

tb11= {tb12 = {bool = true}} -- simple, it‘s a table IN a table :)

-- Call magic!

print(tb11.tb12.bool ) -- works fine, since it‘s calling the key and value correctly.

print(tab11[“tb12” ].bool ) --same as line 33

print(tab11.tb12 [“bool”]) --same as line 33

print(tab11[“tb12” ][“bool”]) --same as line 33

修改table的value

代码如下:

--Altering a table‘s content. Basically manipulating the values of the keys.

lucky= {john=“chips” ,jane =“lemonade”,jolene=“egg salad” }

lucky.jolene = “fruit salad” --changed the value to “fruit salad” instead of “egg salad”

lucky.jerry = “fagaso food” -- adding a new key-value pair to the container lucky.

lucky.john = nil -- remove john from giving anything or from being a key.

table的易变性

代码如下:

a = {}; b = a;

print(a == b) -->true

c,d = {},{};

print(c == d) -->false

table库函数使用

-----------------------------------------------------------

1. table.sort (table [, comp])

Sorts table elements in a given order, in-place, from table[1] to table[n], where n is the length of the table. If comp is given, then it must be a function that receives two table elements, and returns true when the first is less than the second (so that not comp(a[i+1],a[i]) will be true after the sort). If comp is not given, then the standard Lua operator < is used instead.

The sort algorithm is not stable; that is, elements considered equal by the given order may have their relative positions changed by the sort.

代码如下:

name = {“you” ,“me”, “him”,“bill” }

--table.sort - only works with arrays!

table.sort(name)

for k, v in ipairs( name) do

print( k,v)

end

--table.sort uses callbacks. a function that is writtent to be called by a library function.

function cmp( a, b)

if string.sub(a,2 ,2) < string.sub(b,2 ,2) then

return true

else

return false

end

end

table.sort(name, cmp)

for k, v in ipairs( name) do

print( k,v)

end

2. table.insert (table, [pos,] value)

Inserts element value at position pos in table, shifting up other elements to open space, if necessary. The default value for pos is n+1, where n is the length of the table so that a call table.insert(t,x) inserts x at the end of table t.

代码如下:

--table.insert --an easy to copy a table to another table or adding elements to an array.!

foo = {“a” ,“c”, “d”}

bar = {}

function printt( table)

for i=1 ,#table do

print(i,table [i ])

end

end

print(“before insert:” )

printt(foo)

table.insert(foo,2 ,“b”)

print(“after insert” )

printt(foo)

3. table.concat (table [, sep [, i [, j]]])

Given an array where all elements are strings or numbers, returns table[i]..sep..table[i+1] ・・・ sep..table[j]. The default value for sep is the empty string, the default for i is 1, and the default for j is the length of the table. If i is greater than j, returns the empty string.

代码如下:

--table.concat does what it implies. Takes an array and concates to one string.

num = {1 ,2, 3,4,5 ,6}

print(table.concat (num ,“<”))

4. table.remove (table [, pos])

Removes from table the element at position pos, shifting down other elements to close the space, if necessary. Returns the value of the removed element. The default value for pos is n, where n is the length of the table, so that a call table.remove(t) removes the last element of table t.

代码如下:

abc = {“a” ,“b”, “c”}

print(table.remove (abc ,2))

print(“abc length = ” .. #abc)

5. table.maxn (table)

Returns the largest positive numerical index of the given table, or zero if the table has no positive numerical indices. (To do its job this function does a linear traversal of the whole table.)

--table.maxn

代码如下:

apple = {“a” ,“p”,[ 5]=“e”}

print(table.maxn (apple )) -- 5

duck = {[-2 ]=3,[- 1]=0}

print(table.maxn (duck )) -- 0

面向对象编程

代码如下:

--note for a object to work, it needs a closure(inner function with an upvalue(a local value from a higher scope))

--note: the more closures made, the slower the program would run.

function mg1( n)

local function get

return n ;

end

local function inc (m )

n = n +m ;

end

return {get = get, inc= inc}

end

bject = mg1(50 )

print(object.get ())

print(object[“get” ]())

object.inc(2 )

print(object.get ())

----------------------------------------

do

local function get (o )

return o.one

end

local function inc (self , two )

self.one = self.one + two

end

function mg3 (one )

return {one = one , get = get , inc = inc }

end

end

a = mg3(50 )

a:get()

a.inc(a,2 )

print(a:get())

----------------------------------------

do

local T = {};

function T:get()

return self.n ;

end

function T:inc(m)

self.n = self.n + m ;

end

function mg4 ( n )

return {n = n , get =T.get , inc =T.inc }

end

end

c = mg4(30 )

print(c:get())

c:inc(4 )

print(c:get())

(完)

篇2:Redis list 类型学习笔记与总结

这篇文章主要介绍了Redis list 类型学习笔记与总结,本文着重讲解了关于List的一些常用方法,比如lpush 方法、lrange 方法、rpush 方法、linsert 方法、lset 方法等,需要的朋友可以参考下

redis 版本

代码如下:

[root@localhost ~]# redis-server --version

Redis server v=2.8.19 sha=00000000:0 malloc=jemalloc-3.6.0 bits=32 build=e2559761bd460ca0

list 是一个链表结构,主要功能是 push(类似 PHP 的 array_push() 方法)、pop(类似 PHP 的 array_pop() 方法)、获取一个范围的所有值 等, 操作

中 key 理解为链表的名字,Redis 的 list 类型其实就是一个每个子元素都是 string 类型的 双向链表。

链表的最大长度是(2的 32 次方)。我们可以通过 push, pop 操作从链表的头部或者尾部添加删除元素。这使得 list 既可以用作栈,也可以用作队列。

有意思的是 list 的 pop 操作还有阻塞版本的,当我们[lr]pop 一个 list 对象时,如果 list 是空,或者不存在,会立即返回 nil。但是阻塞版本的 b[lr]pop 可以则可以阻塞,当然可以加超时时间,超时后也会返回 nil。为什么要阻塞版本的 pop 呢,主要是为了避免轮询。举个简单的例子如果我们用 list 来实现一个工作队列。执行任务的 thread 可以调用阻塞版本的 pop 去获取任务这样就可以避免轮询去检查是否有任务存在。当任务来时候工作线程可以立即返回,也可以避免轮询带来的延迟。

① lpush 方法(栈)

在 key 对应 list 的头部 添加(压入)字符串元素。

② lrange 方法

lrange list1 0 -1 代表从链表 list1 的头部第一个元素取到 尾部第一个元素(-1 代表尾部第一个元素)。

【例】

代码如下:

127.0.0.1:6379>lpush list1 hello

(integer) 1

127.0.0.1:6379>lpush list1 world

(integer) 2

127.0.0.1:6379>lrange list1 0 -1

1) “world”

2) “hello”

③ rpush 方法(队列)

在 key 对应 list 的尾部 添加(压入)字符串元素。

【例】

代码如下:

127.0.0.1:6379>rpush list2 hello

(integer) 1

127.0.0.1:6379>rpush list2 world

(integer) 2

127.0.0.1:6379>lrange list2 0 -1

1) “hello”

2) “world”

不论是 lpush 还是 rpush 方法,都是从 list 的 两端压入。

④ linsert 方法

在 key 对应 list 的特定位置前或后添加字符串。

【例】

代码如下:

127.0.0.1:6379>rpush list3 one

(integer) 1

127.0.0.1:6379>linsert list3 before one two

(integer) 2

127.0.0.1:6379>lrange list3 0 -1

1) “two”

2) “one”

127.0.0.1:6379>linsert list3 before one three

(integer) 3

127.0.0.1:6379>lrange list3 0 -1

1) “two”

2) “three”

3) “one”

注意:

|  | 头(前)

|  | ↑

|  | 尾

⑤ lset 方法

设置 list 中指定下标的元素值(替换指定下标的元素,类似 PHP 中的数组:$arr = array(‘a‘, ‘b‘, ‘c‘); $arr[0] = ‘d‘; )。

【例】

代码如下:

127.0.0.1:6379>lrange list3 0 -1

1) “two”

2) “three”

3) “one”

127.0.0.1:6379>lset list3 1 tmp

OK

127.0.0.1:6379>lrange list3 0 -1

1) “two”

2) “tmp”

3) “one”

127.0.0.1:6379>lset list3 0 reset

OK

127.0.0.1:6379>lrange list3 0 -1

1) “reset”

2) “tmp”

3) “one”

⑥ lrem 方法

从 key 对应 list 中删除 n 个和 value 相同的元素。(n < 0 从尾删除,n = 0 全部删除)。返回删除的个数。

【例】

代码如下:

127.0.0.1:6379>lrange list3 0 -1

1) “reset”

2) “tmp”

3) “one”

127.0.0.1:6379>lpush list3 two

(integer) 4

127.0.0.1:6379>lpush list3 two

(integer) 5

127.0.0.1:6379>lpush list3 two

(integer) 6

127.0.0.1:6379>lrange list3 0 -1

1) “two”

2) “two”

3) “two”

4) “reset”

5) “tmp”

6) “one”

127.0.0.1:6379>lrem list3 1 two

(integer) 1

127.0.0.1:6379>lrange list3 0 -1

1) “two”

2) “two”

3) “reset”

4) “tmp”

5) “one”

127.0.0.1:6379>rpush list3 two

(integer) 6

127.0.0.1:6379>lrange list3 0 -1

1) “two”

2) “two”

3) “reset”

4) “tmp”

5) “one”

6) “two”

127.0.0.1:6379>lrem list3 -2 two

(integer) 2

127.0.0.1:6379>lrange list3 0 -1

1) “two”

2) “reset”

3) “tmp”

4) “one”

【例2】

代码如下:

127.0.0.1:6379>lrange list3 0 -1

1) “two”

2) “reset”

3) “tmp”

4) “one”

127.0.0.1:6379>lrem list3 -2 two

(integer) 1

127.0.0.1:6379>lrange list3 0 -1

1) “reset”

2) “tmp”

3) “one”

127.0.0.1:6379>lrem list3 -2 two

(integer) 0

127.0.0.1:6379>lrange list3 0 -1

1) “reset”

2) “tmp”

3) “one”

⑦ ltrm 方法

保留指定 key 的值范围内的数据,

【例】

代码如下:

127.0.0.1:6379>lpush list4 one

(integer) 1

127.0.0.1:6379>lpush list4 two

(integer) 2

127.0.0.1:6379>lpush list4 three

(integer) 3

127.0.0.1:6379>lpush list4 four

(integer) 4

127.0.0.1:6379>lrange list4 0 -1

1) “four”

2) “three”

3) “two”

4) “one”

127.0.0.1:6379>ltrim list4 1 2

OK

127.0.0.1:6379>lrange list4 0 -1

1) “three”

2) “two”

说明:保留下标(key)为 1 开始到下标为 2 的元素,其他两端的元素全部删除。

【例2】

代码如下:

127.0.0.1:6379>lrange list4 0 -1

1) “seven”

2) “six”

3) “five”

4) “three”

5) “two”

127.0.0.1:6379>ltrim list4 2 -1

OK

127.0.0.1:6379>lrange list4 0 -1

1) “five”

2) “three”

3) “two”

⑧ lpop 方法

从 list 的头部 删除 元素,并返回删除的元素(类似 PHP 中的 array_pop() 方法:将数组的最后一个单元弹出(删除))。

(rpop:代表从尾部删除元素)

【例】

代码如下:

127.0.0.1:6379>lrange list4 0 -1

1) “five”

2) “three”

3) “two”

127.0.0.1:6379>lpop list4

“five”

127.0.0.1:6379>lrange list4 0 -1

1) “three”

2) “two”

127.0.0.1:6379>rpop list4

“two”

127.0.0.1:6379>lrange list4 0 -1

1) “three”

⑨ rpoplpush 方法

从第一个 list 的尾部移除元素并添加到 第二个 list 的头部。

代码如下:

127.0.0.1:6379>lrange list4 0 -1

1) “eight”

2) “seven”

3) “three”

127.0.0.1:6379>lrange list5 0 -1

1) “redis”

2) “nginx”

3) “mysql”

4) “php”

127.0.0.1:6379>rpoplpush list4 list5

“three”

127.0.0.1:6379>lrange list4 0 -1

1) “eight”

2) “seven”

127.0.0.1:6379>lrange list5 0 -1

1) “three”

2) “redis”

3) “nginx”

4) “mysql”

5) “php”

⑩ lindex 方法

返回名称为 key 的 list 中 index 位置的元素。

【例】

代码如下:

127.0.0.1:6379>lrange list5 0 -1

1) “three”

2) “redis”

3) “nginx”

4) “mysql”

5) “php”

127.0.0.1:6379>lindex list5 1

“redis”

127.0.0.1:6379>lindex list5 -1

“php”

⑪ llen 方法(类似 PHP 中 count($arr) )

返回 list 链表中元素的个数。

【例】

代码如下:

127.0.0.1:6379>lrange list5 0 -1

1) “three”

2) “redis”

3) “nginx”

4) “mysql”

5) “php”

127.0.0.1:6379>llen list5

(integer) 5

篇3:Redis String 类型和 Hash 类型学习笔记与总结

这篇文章主要介绍了Redis String 类型和 Hash 类型学习笔记与总结,本文分别对String 类型的一些方法和Hash 类型做了详细介绍,需要的朋友可以参考下

Linux 版本信息:

代码如下:

cat /etc/issue 或cat /etc/redhat-release(Linux查看版本当前操作系统发行版信息)

CentOS release 6.6 (Final)

(一)String 类型

【定义】string 是最简单的类型,你可以理解成与 Memcached 是一模一样的类型,一个 key 对应一个 value,其上支持的操作与 Memcached 的操作类似,但它的功能更丰富。

string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据, 比如 jpg 图片或者序 列化的对象。 从内部实现来看其实 string 可以看作 byte 数组,最大上限是 1G 字节。

【操作】

① set 方法

设置 key 对应的值为 string 类型的 value。

【例】添加 name = dee 的键值对:

代码如下:

127.0.0.1:6379>set name dee

OK

设置成功。

② get 方法

【例】

代码如下:

127.0.0.1:6379>get name

“dee”

获取成功。

再次设置 name = deathmask,值会被覆盖:

代码如下:

127.0.0.1:6379>set name deathmask

OK

127.0.0.1:6379>get name

“deathmask”

③ setnx 方法

设置 key 对应的值为 string 类型的 value,如果 key 已经存在,返回 0,nx 表示 not exist。

【例】

代码如下:

127.0.0.1:6379>setnx name dee

(integer) 0

127.0.0.1:6379>setnx app weibo

(integer) 1

127.0.0.1:6379>get name

“deathmask”

127.0.0.1:6379>get app

“weibo”

表示 name 已经存在而且没有更改,app 不存在则成功 set。

④ setex 方法

设置 key 对应的值为 string 类型的 value,并指定 此键值 对应的有效期。

【例】

代码如下:

127.0.0.1:6379>setex mobile 10 iphone

OK

127.0.0.1:6379>get mobile

“iphone”

127.0.0.1:6379>get mobile

“iphone”

127.0.0.1:6379>get mobile

(nil)

设置 mobile 的值为 iPhone,并且指定有效期为 10 秒。

⑤ setrange 方法

设定指定 key 的 value 值的子字符串

【例】将 dee 的 126 邮箱 替换为 gmail 邮箱

代码如下:

127.0.0.1:6379>set email dee@126.com

OK

127.0.0.1:6379>get email

“dee@126.com”

127.0.0.1:6379>setrange email 4 gmail.com

(integer) 13

127.0.0.1:6379>get email

“dee@gmail.com”

其中 4 代表下标,(integer) 13 表示字符串的长度。

【例2】

代码如下:

127.0.0.1:6379>set email dee@vip.ofim.com

OK

127.0.0.1:6379>get email

“dee@vip.ofim.com”

127.0.0.1:6379>setrange email 4 gmail.com

(integer) 16

127.0.0.1:6379>get email

“dee@gmail.comcom”

说明:如果替换的字符串没有源字符串长,则只会把源字符串中相同长度的字符替换掉,同时保留源字符串中剩余的字符。

⑥ mset 方法

一次设置多个 key 值,成功返回 ok,表示所有的值都设置了,失败返回 0,表示没有任何值被设置。

【例】

代码如下:

127.0.0.1:6379>mset key1 dee1 key2 dee2

OK

127.0.0.1:6379>get key1

“dee1”

127.0.0.1:6379>get key2

“dee2”

⑦ msetnx 方法

一次设置多个 key 的值,成功返回 1,表示所有的值都被设置了。失败返回 0 ,表示没有任何值被设置,但是不会覆盖已经存在的 key。

代码如下:

127.0.0.1:6379>msetnx key3 dee3 key4 dee4

(integer) 1

127.0.0.1:6379>msetnx key3 dee333 key4 dee444 key5 dee5

(integer) 0

127.0.0.1:6379>get key3

“dee3”

127.0.0.1:6379>get key4

“dee4”

127.0.0.1:6379>get key5

(nil)

⑧ getset 方法

设置 key 的值,并返回 key 的旧值。

【例】

代码如下:

127.0.0.1:6379>getset key1 emperor

“dee1”

⑨ getrange 方法

获取 key 的 value 值的子字符串。

代码如下:

127.0.0.1:6379>get email

“dee@gmail.comcom”

127.0.0.1:6379>getrange email 0 12

“dee@gmail.com”

返回第 0 到第12 个字符。

⑩ mget 方法

一次获取多个 key 的值,如果对应 key 不存在则对应返回 nil。

【例】

代码如下:

127.0.0.1:6379>mget key1 key2 key3 key4 key5

1) “emperor”

2) “dee2”

3) “dee3”

4) “dee4”

5) (nil)

⑪ incr 方法

对 key 的值做 加加 操作,并返回新的值。

【例】每次递增1

代码如下:

127.0.0.1:6379>set age 28

OK

127.0.0.1:6379>get age

“28”

127.0.0.1:6379>incr age

(integer) 29

127.0.0.1:6379>incr age

(integer) 30

127.0.0.1:6379>get age

“30”

【例2】

代码如下:

127.0.0.1:6379>get real-age

(nil)

127.0.0.1:6379>incr real-age

(integer) 1

127.0.0.1:6379>get real-age

“1”

⑫ incrby 方法

同 incr 方法类似,加指定值,key 不存在时会设置 key,并认为原来的 value 为 0。

【例】

代码如下:

127.0.0.1:6379>get times

(nil)

127.0.0.1:6379>incrby times 5

(integer) 5

127.0.0.1:6379>get times

“5”

【例2】

代码如下:

127.0.0.1:6379>incrby times -5

(integer) 0

127.0.0.1:6379>get times

“0”

⑬ decr 方法

对 key 的值做 减减操作,

⑭ decrby 方法

同 decr 方法类似,减指定值。

【例】

代码如下:

127.0.0.1:6379>get age

“30”

127.0.0.1:6379>decr age

(integer) 29

127.0.0.1:6379>decrby age 10

(integer) 19

127.0.0.1:6379>decrby age -10

(integer) 29

⑮ append 方法(重要)

给指定 key 的字符串追加 value ,返回新字符串的长度。

【例】

代码如下:

127.0.0.1:6379>get name

“deathmask”

127.0.0.1:6379>append name @163.com

(integer) 17

127.0.0.1:6379>get name

“deathmask@163.com”

⑯ strlen 方法

取指定 key 的 value 值的长度。

【例】

代码如下:

127.0.0.1:6379>get name

“deathmask@163.com”

127.0.0.1:6379>strlen name

(integer) 17

(二)Hash 类型

Redis hash 是一个 string 类型的 field 和 value 的 映射表。它的添加、删除操作都是 0(1)(平均操作)。

hash 特别 适合用于存储对象。相较于将对象的每个字段存成单个 string 类型(string 类型可以存储对象序列化)。

将一个对象存储在 hash 类型中会占用更少的内存,并且可以更方便的存取整个对象。

(省内存的原因是新建一个 hash 对象时开始是用 zipmap(又称为 small hash)来存储的。

这个 zipmap 其实并不是 hash table,但是 zipmap 相比正常的 hash 实现可以节省不少 hash 本身需要的一些元数据存储开销。

尽管 zipmap 的添加,删除,查找都是 O(n),但是由于一般对象的 field 数量都不太多,所以使用 zipmap 也是很快的,也就是说添加删除平均还是 O(1)。

如果 field 或者 value的大小超出一定限制后, Redis 会在内部自动将 zipmap 替换成正常的 hash 实现. 这个限制可以在配置文件中指定。

hash-max-zipmap-entries 64 #配置字段最多 64 个,hash-max-zipmap-value 512 #配置 value 最大为 512 字节)

【操作】

① hset 方法 / hget 方法

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

【例】

代码如下:

127.0.0.1:6379>hset myhash field1 hello

(integer) 1

说明:myhash 是 hash 表的名称,field1 是 hash 表的一个字段,hello 是这个字段对应的值。存储用户比较方便。

【例2】

代码如下:

127.0.0.1:6379>hset user:001 name dee

(integer) 1

127.0.0.1:6379>hget user:001 name

“dee”

说明:设置 user 表 id 为 001 的用户,用户名为 dee。

可以把 user:001 看作一张表。

② hsetnx 方法

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

【例】

代码如下:

127.0.0.1:6379>hsetnx myhash field “hello”

(integer) 1

127.0.0.1:6379>hsetnx myhash field “hello!”

(integer) 0

127.0.0.1:6379>hget myhash field

“hello”

③ hmset 方法

同时设置 hash 的多个 field

【例】

代码如下:

127.0.0.1:6379>hmset user:002 name dee specialty php

OK

127.0.0.1:6379>hget user:002 name

“dee”

127.0.0.1:6379>hget user:002 specialty

“php”

④ hget 方法

获取全部指定的 hash field。

【例】

代码如下:

127.0.0.1:6379>hmget user:002 name specialty

1) “dee”

2) “php”

⑤ hincrby 方法

指定的 hash field 加上给定值。

【例】

代码如下:

127.0.0.1:6379>hmset user:002 name dee specialty redis age 28

OK

127.0.0.1:6379>hincrby user:002 age -6

(integer) 22

127.0.0.1:6379>hmget user:002 name specialty age

1) “dee”

2) “redis”

3) “22”

127.0.0.1:6379>hincrby user:002 age 5

(integer) 27

127.0.0.1:6379>hmget user:002 name specialty age

1) “dee”

2) “redis”

3) “27”

⑥ hexists 方法

测试指定 field 是否存在。

【例】

代码如下:

127.0.0.1:6379>hexists user:002 name

(integer) 1

127.0.0.1:6379>hexists user:002 sex

(integer) 0

⑦ hlen 方法

返回指定 hash 的 field 数量。

【例】

代码如下:

127.0.0.1:6379>hlen user:002

(integer) 3

⑧ hdel 方法

删除指定 hash 的 field。

【例】

代码如下:

127.0.0.1:6379>hdel user:002 age

(integer) 1

127.0.0.1:6379>hget user:002 age

(nil)

⑨ hkeys 方法(类似 PHP 中 array_keys() 方法)

返回 hash 的所有 field。

【例】

代码如下:

127.0.0.1:6379>hkeys user:002

1) “name”

2) “specialty”

⑩ hvals 方法(类似 PHP 中的 array_values() 方法)

返回 hash 的所有 value。

【例】

代码如下:

127.0.0.1:6379>hvals user:002

1) “dee”

2) “redis”

⑪ hgetall 方法

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

【例】

代码如下:

127.0.0.1:6379>hgetall user:002

1) “name”

2) “dee”

3) “specialty”

4) “redis”

【总结】设置 hash 类型的数据,首先要设置 hash 的表,然后设置 hash 的 field,最后设置 hash field 的 value。

【Lua table类型学习笔记】相关文章:

1.Redis list 类型学习笔记与总结

2.党员学习笔记

3.学习笔记范文

4.java学习笔记

5.党员学习笔记标准

6.9月党员学习笔记

7.班主任工作学习笔记

8.教师党员学习笔记

9.高一英语学习笔记

10.Linux学习笔记:Linux分区

下载word文档
《Lua table类型学习笔记.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

  • 返回顶部