Redis学习笔记10Redis数据类型之(3) 链表类型

1.1.1. lpush

在链表的头部插入一个或多个值。

语法:

LPUSH key value [value ...]

参数:

key 键名。键值为一个链表。

value  要插入的值。

返回值:

整数:在插入之后,链表的长度。

ERROR:key对应的对象不是链表类型。

例子:

redis.coe2coe.me:6379> lpush mylist host redis.coe2coe.me

(integer) 2

redis.coe2coe.me:6379> lpush mylist port 6379

(integer) 4

redis.coe2coe.me:6379> set a 123

OK

redis.coe2coe.me:6379> lpush a port 6379

(error) WRONGTYPE Operation against a key holding the wrong kind of value

redis.coe2coe.me:6379> lpush mylist key1 aaaa

(integer) 6

一次插入2个值。

redis.coe2coe.me:6379> lpush mylist aaa,bbb,ccc

(integer) 7

本次只插入了一个值。

1.1.2. rpush

在链表的末尾加入指定的值。

语法:

RPUSH key value [value ...]

返回值:

整数:在插入之后,链表的长度。

ERROR:key对应的对象不是链表类型。

例子:

redis.coe2coe.me:6379> rpush mylist end3 end2 end1

(integer) 10

1.1.3. lpop

删除链表的头部的第一个值。

语法:

LPOP key

返回值:

第一个元素的值:删除成功了。

nil:删除失败。链表长度为0,或者key对应的链表不存在。

ERROR:key对应的对象存在,但是类型不是链表类型。

例子:

redis.coe2coe.me:6379> lpop mylist

"aaa,bbb,ccc"

redis.coe2coe.me:6379> lpop mylist

"aaaa"

redis.coe2coe.me:6379> lpop nosuchlist

(nil)

redis.coe2coe.me:6379> set a 1243

OK

redis.coe2coe.me:6379> lpop a

(error) WRONGTYPE Operation against a key holding the wrong kind of value

1.1.4. rpop

删除链表的尾部的最后一个值。

语法:

RPOP key

返回值:

最后一个元素的值:删除成功了。

nil:删除失败。链表长度为0,或者key对应的链表不存在。

ERROR:key对应的对象存在,但是类型不是链表类型。

用法与lpop类似,不再赘述。

1.1.5. lrange

获取链表中指定的范围的元素的值。

语法:

LRANGE key start stop

参数:

key 键名。

start:开始位置。

stop:结束位置。

位置从0开始,-1表示最后一个元素的位置,-2表示倒数第2个元素的位置,以此类推。

返回值:

元素的值的数组:操作成功。

例子:

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "key1"

2) "6379"

3) "port"

4) "redis.coe2coe.me"

5) "host"

6) "end3"

7) "end2"

8) "end1"

redis.coe2coe.me:6379> lpop mylist

"key1"

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "6379"

2) "port"

3) "redis.coe2coe.me"

4) "host"

5) "end3"

6) "end2"

7) "end1"

redis.coe2coe.me:6379> rpop mylist

"end1"

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "6379"

2) "port"

3) "redis.coe2coe.me"

4) "host"

5) "end3"

6) "end2"

redis.coe2coe.me:6379> lrange nosuchlist 0 -1

(empty list or set)

redis.coe2coe.me:6379> set a 123

OK

redis.coe2coe.me:6379> lrange a 0 -1

(error) WRONGTYPE Operation against a key holding the wrong kind of value

redis.coe2coe.me:6379> lrange mylist 5 3

(empty list or set)

1.1.6. linsert

在指定元素的前面或后面插入一个新元素。

语法:

LINSERT key BEFORE|AFTER pivot value

参数:

key 键名。键值为一个链表。

位置:BEFORE:在指定元素之前插入,AFTER:在之后插入。

pivot:指定的元素。

value:待插入的值。

返回值:

整数:插入操作之后链表的长度。

-1:在链表中没有找到值为privot的元素。

ERROR:key对应的元素存在,但是类型不是链表。

例子:

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "6379"

2) "port"

3) "redis.coe2coe.me"

4) "host"

5) "end3"

6) "end2"

redis.coe2coe.me:6379> linsert mylist before port value1

(integer) 7

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "6379"

2) "value1"

3) "port"

4) "redis.coe2coe.me"

5) "host"

6) "end3"

7) "end2"

redis.coe2coe.me:6379> linsert mylist after port value2

(integer) 8

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "6379"

2) "value1"

3) "port"

4) "value2"

5) "redis.coe2coe.me"

6) "host"

7) "end3"

8) "end2"

redis.coe2coe.me:6379> linsert mylist  before nosuchvalue value3

(integer) -1

redis.coe2coe.me:6379> set a 123

OK

redis.coe2coe.me:6379> linsert a before nosuchvalue value3

(error) WRONGTYPE Operation against a key holding the wrong kind of value

1.1.7. lindex

查找指定位置的元素。

语法:

LINDEX key index

参数:

key:键名。

index:位置。从0开始。-1表示最后一个位置,-2表示倒数第2个位置,以此类推。

返回值:

元素的值:操作成功。

nil:index超出链表范围。

ERROR:key对应的键存在,但是键值的类型不是链表。

例子:

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "6379"

2) "value1"

3) "port"

4) "value2"

5) "redis.coe2coe.me"

6) "host"

7) "end3"

8) "end2"

redis.coe2coe.me:6379> lindex mylist 0

"6379"

redis.coe2coe.me:6379> lindex mylist 2

"port"

redis.coe2coe.me:6379> lindex mylist 7

"end2"

redis.coe2coe.me:6379> lindex mylist 8

(nil)

redis.coe2coe.me:6379> lindex mylist -1

"end2"

redis.coe2coe.me:6379> lindex mylist -2

"end3"

redis.coe2coe.me:6379> lindex mylist -10

(nil)

redis.coe2coe.me:6379> lindex nosuchlist 0

(nil)

redis.coe2coe.me:6379> set a 2134

OK

redis.coe2coe.me:6379> lindex a 0

(error) WRONGTYPE Operation against a key holding the wrong kind of value

llen

取得链表长度。

语法:

LLEN key

返回值:

正整数:链表长度。

0:key对应的链表不存在,或者存在,但是长度为0.

ERROR:key对应的对象存在,但是类型不是链表类型。

例子:

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "6379"

2) "value1"

3) "port"

4) "value2"

5) "redis.coe2coe.me"

6) "host"

7) "end3"

8) "end2"

redis.coe2coe.me:6379> llen mylist

(integer) 8

redis.coe2coe.me:6379> llen nosuchlist

(integer) 0

redis.coe2coe.me:6379> set a 123

OK

redis.coe2coe.me:6379> llen a

(error) WRONGTYPE Operation against a key holding the wrong kind of value

1.1.8. lset

设置指定的位置的元素的值。

语法:

LSET key index value

参数:

index:位置。从0开始。-1表示最后一个位置,-2表示倒数第2个位置,以此类推。

value:值。

返回值:

OK:操作成功。

ERROR:可能的原因如下:

key不存在;

或者key对应的键存在,但是键值的类型不是链表;

或者index超出范围。

例子:

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "6379"

2) "value1"

3) "port"

4) "value2"

5) "redis.coe2coe.me"

6) "host"

7) "end3"

8) "end2"

redis.coe2coe.me:6379> lset mylist 0 first

OK

redis.coe2coe.me:6379> lset mylist -1 theend

OK

redis.coe2coe.me:6379> lset mylist 10 newvalue

(error) ERR index out of range

redis.coe2coe.me:6379> lset nosuchlist 0 first

(error) ERR no such key

redis.coe2coe.me:6379> set a 123

OK

redis.coe2coe.me:6379> lset a 0 first

(error) WRONGTYPE Operation against a key holding the wrong kind of value

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "first"

2) "value1"

3) "port"

4) "value2"

5) "redis.coe2coe.me"

6) "host"

7) "end3"

8) "theend"

1.1.9. blpop

阻塞式取出链表头部的第1个元素,如果等待时间超过timeout秒,则返回nil。

语法:

BLPOP key [key ...] timeout

参数:

key :键名,键值为链表。可以指定一个或多个键名。

timeout:超时时间。单位秒。0表示永不超时。只能为正数或0。

返回值:

链表以及元素:操作成功。成功取得一个元素。

nil:超时,没有取得元素。

ERROR:参数错误。

例子:

在链表为空的情况下,blpop将等待timeout秒。

如果10秒仍没有数据,则返回nil。

redis.coe2coe.me:6379> lrange mylist 0 -1

(empty list or set)

redis.coe2coe.me:6379> blpop mylist 10

(nil)

(10.03s)

如果在等待过程中,另一个客户端连接插入了新的数据,则立即返回该数据,同时该数据从链表中删除掉了。

redis.coe2coe.me:6379> blpop mylist 10

1) "mylist"

2) "aaaaaa"

(6.17s)

结果表明在mylist链表中取出了aaaaaa这个元素。

redis.coe2coe.me:6379> lrange mylist 0 -1

(empty list or set)

如果在blpop操作之前链表中已经有一些数据,则blpop立即返回第1个数据。

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "eeeee"

2) "dddd"

3) "ccccc"

4) "bbbbb"

redis.coe2coe.me:6379> blpop mylist 10

1) "mylist"

2) "eeeee"

redis.coe2coe.me:6379> blpop mylist 10

1) "mylist"

2) "dddd"

redis.coe2coe.me:6379> blpop mylist 10

1) "mylist"

2) "ccccc"

可以一次等待多个链表中的数据,只要任何一个链表中有了数据,将立即返回。

redis.coe2coe.me:6379> blpop mylist mylist2 mylist3 10

1) "mylist"

2) "aaaa"

(6.34s)

当timeout值为0时,表示永久等待,不超时。

redis.coe2coe.me:6379> lrange mylist 0 -1

(empty list or set)

redis.coe2coe.me:6379> blpop mylist mylist2 mylist3  0

1) "mylist2"

2) "ccccccc"

(13.56s)

timeout值为负数,则出错。

redis.coe2coe.me:6379> blpop mylist mylist2 mylist3  -1

(error) ERR timeout is negative

1.1.10. lrem

删除值等于指定值的元素。可以从头部开始删除,也可以从尾部开始删除,可以删除一个或多个元素。

语法:

LREM key count value

参数:

count:>0:从头部开始删除值为value的元素,最多删除count个。

<0:从尾部开始删除值为value的元素,最多删除-count个。

=0:删除全部值为value的元素。

value:待删除的值。

返回值:

整数:删除成功的元素的个数。

0:没有元素被删除。

例子:

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "d"

2) "c"

3) "b"

4) "a"

5) "e"

6) "d"

7) "c"

8) "b"

9) "a"

redis.coe2coe.me:6379> lrem mylist 2 a

(integer) 2

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "d"

2) "c"

3) "b"

4) "e"

5) "d"

6) "c"

7) "b"

redis.coe2coe.me:6379> lrange mylist -1 c

(error) ERR value is not an integer or out of range

redis.coe2coe.me:6379> lrem mylist -1 c

(integer) 1

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "d"

2) "c"

3) "b"

4) "e"

5) "d"

6) "b"

redis.coe2coe.me:6379> lrem mylist 3  a

(integer) 0

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "d"

2) "c"

3) "b"

4) "e"

5) "d"

6) "b"

redis.coe2coe.me:6379> lrem nosuchlist 3 a

(integer) 0

redis.coe2coe.me:6379> set a 123

OK

redis.coe2coe.me:6379> lrem a 3 a

(error) WRONGTYPE Operation against a key holding the wrong kind of value

1.1.11. rpoplpush

从source链表的末尾删除一个元素,将这个元素插入到destination链表的开头。这两个链表可以是同一个链表。

语法:

RPOPLPUSH source destination

参数:

source 待删除末尾元素的链表。

destination:待插入到开头的链表。

返回值:

操作的元素的值:操作成功。

nil:source链表为空。

例子:

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "d"

2) "c"

3) "b"

4) "e"

5) "d"

6) "b"

redis.coe2coe.me:6379> lrange mylist2 0 -1

(empty list or set)

redis.coe2coe.me:6379> rpoplpush mylist mylist2

"b"

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "d"

2) "c"

3) "b"

4) "e"

5) "d"

redis.coe2coe.me:6379> lrange mylist2 0 -1

1) "b"

redis.coe2coe.me:6379> rpoplpush mylist mylist

"d"

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "d"

2) "d"

3) "c"

4) "b"

5) "e"

redis.coe2coe.me:6379> rpoplpush nosuchlist mylist

(nil)

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "d"

2) "d"

3) "c"

4) "b"

5) "e"

1.1.12. ltrim

删除指定位置范围之外的元素。只保留start和stop范围内的元素。

语法:

LTRIM key start stop

参数:

start:开始位置。

stop:结束位置:

位置从0开始,-1表示最后一个位置,-2表示倒数第2个元素的位置。以此类推。

返回值:

OK:操作成功。

例子:

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "d"

2) "d"

3) "c"

4) "b"

redis.coe2coe.me:6379> ltrim mylist 1 2

OK

redis.coe2coe.me:6379> lrange mylist 0 -1

1) "d"

2) "c"

redis.coe2coe.me:6379> ltrim mylist 1 0

OK

redis.coe2coe.me:6379> lrange mylist 0 -1

(empty list or set)

1.1. sets

1.1.1. sadd

向集合中增加若干个元素。集合中的每个元素都是唯一的,不能重复。

语法:

SADD key member [member ...]

参数:

key :键名,键值为集合。

member:待增加的元素的值。

返回值:

>0:插入了至少一个新元素。

0:没有插入新元素,可能是元素已经存在。

例子:

redis.coe2coe.me:6379> sadd myset a b c d e

(integer) 5

redis.coe2coe.me:6379> smembers myset

1) "a"

2) "c"

3) "b"

4) "d"

5) "e"

redis.coe2coe.me:6379> sadd myset a b c

(integer) 0

redis.coe2coe.me:6379> smembers myset

1) "a"

2) "c"

3) "e"

4) "d"

5) "b"

redis.coe2coe.me:6379> set a 123

OK

redis.coe2coe.me:6379> sadd  a a b c

(error) WRONGTYPE Operation against a key holding the wrong kind of value

redis.coe2coe.me:6379> sadd myset a 1234 4565

(integer) 2

redis.coe2coe.me:6379> smembers myset

1) "a"

2) "c"

3) "e"

4) "d"

5) "1234"

6) "4565"

7) "b"

1.1.2. srem

删除指定的若干个值。

语法:

SREM key member [member ...]

参数:

member :待删除的值。

返回值:

>0:从集合中删除掉的元素的个数,不包括参数中指定了但是集合中已经不存在的元素。

=0:没有删除掉任何元素。

例子:

redis.coe2coe.me:6379> smembers myset

1) "a"

2) "c"

3) "e"

4) "d"

5) "1234"

6) "4565"

7) "b"

redis.coe2coe.me:6379> srem myset a b c abc

(integer) 3

redis.coe2coe.me:6379> smembers myset

1) "e"

2) "d"

3) "1234"

4) "4565"

redis.coe2coe.me:6379> srem myset a

(integer) 0

1.1.3. smembers

查看集合中的所有元素。

语法:

SMEMBERS key

返回值:

数组:成功返回集合中的所有元素。

例子:

redis.coe2coe.me:6379> smembers myset

1) "e"

2) "d"

3) "1234"

4) "4565"

1.1.4. sismember

判断指定的元素是否在集合中。

语法:

SISMEMBER key member

参数:

key :键名,键值是一个集合。

member:要判断的元素。

返回值:

1:member元素在集合中。

0:member元素不在集合中,或者集合不存在。

ERROR:key对应的对象存在,但是类型不是集合。

例子:

redis.coe2coe.me:6379> smembers myset

1) "e"

2) "d"

3) "1234"

4) "4565"

redis.coe2coe.me:6379> sismember myset d

(integer) 1

redis.coe2coe.me:6379> sismember myset a

(integer) 0

redis.coe2coe.me:6379> sismember nosuchset a

(integer) 0

redis.coe2coe.me:6379> set a 123

OK

redis.coe2coe.me:6379> sismember a  1234

(error) WRONGTYPE Operation against a key holding the wrong kind of value

1.1.5. srandmember

查看集合中的指定个数的随机元素。

语法:

SRANDMEMBER key [count]

参数:

key:键名,键值是集合。

count:待返回元素的个数。

0: 返回空数组。

>0:返回最多count个不同的元素。

<0:返回最多-count个元素,有可能包含相同元素。

返回值:

数组:随机选择的若干个元素。

redis.coe2coe.me:6379> smembers myset

1) "e"

2) "d"

3) "1234"

4) "4565"

redis.coe2coe.me:6379> srandmember myset

"1234"

redis.coe2coe.me:6379> srandmember myset

"4565"

redis.coe2coe.me:6379> srandmember myset

"e"

redis.coe2coe.me:6379> srandmember myset 3

1) "1234"

2) "4565"

3) "d"

redis.coe2coe.me:6379> srandmember myset -3

1) "4565"

2) "d"

3) "d"

redis.coe2coe.me:6379> srandmember myset 10

1) "1234"

2) "4565"

3) "e"

4) "d"

redis.coe2coe.me:6379> srandmember myset 0

(empty list or set)

1.1.6. sdiff

返回在指定的集合中,在第一个集合中存在,而在其它集合中不存在的元素。

本操作只返回差异,但是不会修改任何一个集合。

语法:

SDIFF key [key ...]

返回值:

元素的集合:操作成功。

例子:

redis.coe2coe.me:6379> sadd myset a b c d e f

(integer) 6

redis.coe2coe.me:6379> sadd myset2 a b

(integer) 2

redis.coe2coe.me:6379> sadd myset3 a d

(integer) 2

redis.coe2coe.me:6379> sdiff myset myset2 myset3

1) "e"

2) "c"

3) "f"

sdiffstore

操作与sdiff类似,区别在于将取得的结果集存入一个指定的集合中。

语法:

SDIFFSTORE destination key [key ...]

参数;

destination:将结果存入该集合中。

返回值:

整数:destination中的元素的个数。

例子:

redis.coe2coe.me:6379> sadd myset a b c d e f

(integer) 6

redis.coe2coe.me:6379> sadd myset2 a b

(integer) 2

redis.coe2coe.me:6379> sadd myset3 a d

(integer) 2

redis.coe2coe.me:6379> smembers dest

(empty list or set)

redis.coe2coe.me:6379> sdiffstore dest myset myset2 myset3

(integer) 3

redis.coe2coe.me:6379> smembers dest

1) "e"

2) "c"

3) "f"

redis.coe2coe.me:6379> sadd myset4 c h

(integer) 2

redis.coe2coe.me:6379> sdiffstore dest myset myset2 myset3

(integer) 3

redis.coe2coe.me:6379> smembers dest

1) "e"

2) "c"

3) "f"

redis.coe2coe.me:6379> sadd myset4 f

(integer) 1

redis.coe2coe.me:6379> sdiffstore dest myset myset2 myset3 myset4

(integer) 1

redis.coe2coe.me:6379> smembers dest

1) "e"

1.1.7. sinter

取得指定的集合中每个集合都存在的元素。

语法:

SINTER key [key ...]

返回值:

数组:返回找到的元素。

例子:

redis.coe2coe.me:6379> flushdb

OK

redis.coe2coe.me:6379> sadd myset a b c d e f

(integer) 6

redis.coe2coe.me:6379> sadd myset2 123 a

(integer) 2

redis.coe2coe.me:6379> sadd myset3 345 b

(integer) 2

redis.coe2coe.me:6379> sinter myset myset2 myset3

(empty list or set)

redis.coe2coe.me:6379> flushdb

OK

redis.coe2coe.me:6379> sadd myset a b c d e f

(integer) 6

redis.coe2coe.me:6379> sadd myset2 a b c

(integer) 3

redis.coe2coe.me:6379> sadd myset3 123 a c g h

(integer) 5

redis.coe2coe.me:6379> sinter myset myset2 myset3

1) "a"

2) "c"

1.1.8. sunion

取得在指定的集合中,在至少一个集合中存在的元素。

SUNION key [key ...]

例子:

redis.coe2coe.me:6379> sadd myset a b c d e f

(integer) 6

redis.coe2coe.me:6379> sadd myset2 a b  123

(integer) 3

redis.coe2coe.me:6379> sadd myset3 a c 123

(integer) 3

redis.coe2coe.me:6379> sunion myset myset2 myset3

1) "a"

2) "c"

3) "e"

4) "d"

5) "f"

6) "123"

7) "b"

1.1.9. scard

取得集合的元素的个数。

语法:

SCARD key

返回值:

元素的个数。

例子:

redis.coe2coe.me:6379> sadd myset a b c d

(integer) 4

redis.coe2coe.me:6379> scard myset

(integer) 4

时间: 2024-10-16 01:27:49

Redis学习笔记10Redis数据类型之(3) 链表类型的相关文章

Redis学习笔记08Redis数据类型之(1) 字符串类型

1.1.1. set 设置字符串类型的键值,如果键已存在,则之前的值被覆盖,不关注之前的键值的类型. 语法: SET key value [EX seconds] [PX milliseconds] [NX|XX] 参数: key  键名 value 键值 EX seconds - 过期时间,秒. PX milliseconds -- 过期时间,毫秒. NX -- 仅仅当键不存在时才设置. XX -- 仅仅当键已经存在时才设置. 返回值: OK:操作成功. nil:操作失败. 例子: redis

Redis学习笔记13Redis数据类型之(6)HyperLogLogs类型

1.1.1. pfadd 向指定的hyperloglog中添加一个或多个元素.hyperloglog中重复的元素将被合并成一个元素. 语法: PFADD key element [element ...] 参数: key: 键名,键值为一个hyperloglog对象. element:待添加的元素. 返回值: 1:hyperloglog的基数评估变化了. 0: 没有变化. 例子: redis.coe2coe.me:6379> pfadd myhpp green blue yellow (inte

Redis学习笔记09Redis数据类型之(2) 哈希表类型

1.1.1. hset 向hash中添加键值对. 语法: HSET key field value 参数: key :键名称,键值为一个hash表对象. field:hash表中的键名. value:hash表中的键值. 返回值: 整数:1,成功添加了一个原来不存在的新的键对应的键值对. 0,成功的更新了一个原来存在的键对应的键值对. ERROR:key对应的对象存在,但是并不是哈希表类型. 例子: redis.coe2coe.me:6379> hset myhash  host redis.c

Redis学习笔记10--Redis主从复制

redis主从复制配置和使用都非常简单.通过主从复制可以允许多个slave server拥有和master server相同的数据库副本.下面是关于redis主从复制的一些特点:       1.master可以有多个slave       2.除了多个slave连到相同的master外,slave也可以连接其他slave形成图状结构       3.主从复制不会阻塞master.也就是说当一个或多个slave与master进行初次同步数据时,master可以继续处理client发来的请求.相反

Redis学习笔记~目录

redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hashs(哈希类型).这些数据类型都 支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排 序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更

Redis学习笔记

Redis学习笔记:Redis是什么?redis是开源BSD许可高级的key-vlue存储系统可以用来存储字符串哈希结构链表.结构.集合,因此常用来提供数据结构服务. redis和memcache相比的独特之处:1.redis可以用来做存储,而memcache是用来做缓存 这个特点主要因为其有"持久化"的功能.2.存储的数据有"结构",对于memcache来说,存储的数据只有1种类型"字符串"而 redis则可以存储字符串.链表.哈希机构.集合.

Redis学习笔记4-Redis配置具体解释

在Redis中直接启动redis-server服务时, 採用的是默认的配置文件.採用redis-server   xxx.conf 这种方式能够依照指定的配置文件来执行Redis服务. 依照本Redis学习笔记中Redis的依照方式依照后,Redis的配置文件是/etc/redis/6379.conf.以下是Redis2.8.9的配置文件各项的中文解释. #daemonize no 默认情况下, redis 不是在后台运行的.假设须要在后台运行,把该项的值更改为 yes daemonize ye

Redis学习笔记(简单了解与运行)

Redis学习笔记(简单了解与运行) 开源的非关系型数据库 是REmote Dictionary Server(远程字典服务器)的缩写,以字典结构存储数据 允许其他应用通过TCP协议读写字典中的内容. Redis支持存储的键值数据类型 字符串类型 散列类型 列表类型 集合类型 有序集合类型 Redis的特性 通过一个列子看出Mysql和Redis的存储区别 例如: (存储一篇文章,文章包括:标题(title),正文(content),阅读量(views),标签(tags)) 需求: 把数据存储在

Redis学习笔记4-Redis配置详解

原文:  http://blog.csdn.net/mashangyou/article/details/24555191 在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server   xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redis学习笔记中Redis的按照方式按照后,Redis的配置文件是/etc/redis/6379.conf.下面是Redis2.8.9的配置文件各项的中文解释. 1 #daemon