redis的存储的5种数据类型

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

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

210837_KuwW_2263272.png

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

3.1字符串(string)

操作的命令为:get :获取某一键的值

set:设置某一键的值

del:删除某一键(适用于所有的数据类型)

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

 

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

lpush 从列表左端存入值

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>







 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/2263272/blog/1576988

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值