redis的存储的5种数据类型

1.redis受限于基于内存存储,有时会难以响应到全部的请求,但redis提供了故障转移(failover)的功能,redis实现了主从复制的特性。执行复制的从服务器连上主服务器后,主服务器会发给链接上的从服务器一个原始数据库(copy),以后主服务器的全部写操做都会发送给从服务器,从服务器会随着主服务器的更新进行更新,因此执行读操做的客户端能够连到任意一个从服务器上查询,以减缓主服务器的压力,避免集中式的访问。redis

2.redis和其余数据库的比较数据库

3. 5种键值数据(String,list,set,hash.zset)服务器

3.1字符串(string)code

操做的命令为:get :获取某一键的值内存

set:设置某一键的值rem

del:删除某一键(适用于全部的数据类型)字符串

3.2 list列表(值可重复) 有序get

 

操做的命令为: rpush 从列表右端存入值string

lpush 从列表左端存入值hash

lrange 获取给定范围的全部值 0为开始,-1为结束

lindex 获取给定位置的值

rpop 从列表右端删除值

lpop 从列表左端删除值

127.0.0.1:6379> rpush list-key 11

(integer) 1

127.0.0.1:6379> lpush list-key 22

(integer) 2

127.0.0.1:6379> lrange list-key

(error) ERR wrong number of arguments for 'lrange' command

127.0.0.1:6379> lpush list-key 33

(integer) 3

127.0.0.1:6379> lrange list-key 0,-1

(error) ERR wrong number of arguments for 'lrange' command

127.0.0.1:6379> lrange list-key 0 -1

1) "33"

2) "22"

3) "11"

127.0.0.1:6379> lrange list-key 0

(error) ERR wrong number of arguments for 'lrange' command

127.0.0.1:6379> lrange list-key 0 1

1) "33"

2) "22"

127.0.0.1:6379> lindex list-key 1

"22"

127.0.0.1:6379> lindex list-key 0

"33"

127.0.0.1:6379> rpop list-key

"11"

127.0.0.1:6379> lrange list-key 0 -1

1) "33"

2) "22"

127.0.0.1:6379> lpop list-key

"33"

127.0.0.1:6379> lrange list-key 0 -1

1) "22"

127.0.0.1:6379>


3.3 集合Set(不予许存重复值),集合经过散列表保证存储的每一个值都是不一样的,无序

操做命令为: sadd :向集合中插入值

smembers :获取集合中的值

sismember :检查集合中是否有某个值

srem:删除集合中的某个值

127.0.0.1:6379> sadd set-key 11

(integer) 1

127.0.0.1:6379> sadd set-key 22

(integer) 1

127.0.0.1:6379> sadd set-key 44

(integer) 1

127.0.0.1:6379> smembers set-key

1) "11"

2) "22"

3) "44"

127.0.0.1:6379> sismember set-key 22

(integer) 1

127.0.0.1:6379> sismember set-key 33

(integer) 0

127.0.0.1:6379> srem set-key 22

(integer) 1

127.0.0.1:6379> sismember set-key 22

(integer) 0

127.0.0.1:6379> smembers set-key

1) "11"

2) "44"

127.0.0.1:6379>

 

3.4 散列

操做命令: hset 向散列key中存入键值对

hgetall 获取散列key中的键值对

hdel 删除散列key中的键值对的某一键值对

127.0.0.1:6379> hset hash-key sub-key1 value1

(integer) 1

127.0.0.1:6379> hset hash-key sub-key2 value2

(integer) 1

127.0.0.1:6379> hset hash-key sub-key3 value3

(integer) 1

127.0.0.1:6379> hgetall hash-key

1) "sub-key1"

2) "value1"

3) "sub-key2"

4) "value2"

5) "sub-key3"

6) "value3"

127.0.0.1:6379> hset hash-key sub-key3 value3

(integer) 0

127.0.0.1:6379> hgetall hash-key

1) "sub-key1"

2) "value1"

3) "sub-key2"

4) "value2"

5) "sub-key3"

6) "value3"

127.0.0.1:6379> hset hash-key sub-key3 value4

(integer) 0

127.0.0.1:6379> hgetall hash-key

1) "sub-key1"

2) "value1"

3) "sub-key2"

4) "value2"

5) "sub-key3"

6) "value4"

127.0.0.1:6379> hdel hash-key sub-key2

(integer) 1

127.0.0.1:6379> hgetall hash-key

1) "sub-key1"

2) "value1"

3) "sub-key3"

4) "value4"

127.0.0.1:6379>

3.5 有序集合

和散列同样存储的是键值对,有序集合的键成为成员(member),值为分数(score)

既能够根据成员访问分值,又能够根据分值以及分值的顺序获取成员

 

操做命令 : zadd :将一个给定分值的成员添加到有序集合里面

zrange : 根据元素在集合中所处的位置,获取多个元素

zrem :删除集合中的元素

zrangebuscores: 根据分值获取集合中符合范围的元素


 

127.0.0.1:6379> zadd zset-key 728 member1

(integer) 1

127.0.0.1:6379> zadd zset-key 982 member0

(integer) 1

127.0.0.1:6379> zadd zset-key 982 member0

(integer) 0

127.0.0.1:6379> zrange zset-key 0 -1 withscores

1) "member1"

2) "728"

3) "member0"

4) "982"

127.0.0.1:6379> zrangebyscore zset-key 0 800 withscores

1) "member1"

2) "728"

127.0.0.1:6379> zrem zset-key member1

(integer) 1

127.0.0.1:6379> zrem zset-key member1

(integer) 0

127.0.0.1:6379> zrange zset-key 0 -1 withscores

1) "member0"

2) "982"

127.0.0.1:6379>
相关文章
相关标签/搜索