Redis、MongoDB的使用场景与常见的数据结构”这篇博客

本文详细介绍了Redis中的String、Hash、List、Set、Sorted Set和消息订阅、Transaction的使用场景与命令,以及它们的实现方式。例如,String适合存储计数信息,Hash适用于存储用户信息等复杂对象,List可以实现消息队列,Sorted Set用于排序和权重处理,Transaction提供了基本的命令打包执行。同时提到了MongoDB的一些数据类型,如字符串、日期、正则表达式等。
摘要由CSDN通过智能技术生成

String

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. 1、String  
  2. 常用命令:  
  3. 除了get、set、incr、decr mget等操作外,Redis还提供了下面一些操作:  
  4. 获取字符串长度  
  5. 往字符串append内容  
  6. 设置和获取字符串的某一段内容  
  7. 设置及获取字符串的某一位(bit)  
  8. 批量设置一系列字符串的内容  
  9.   
  10. 应用场景:  
  11. String是最常用的一种数据类型,普通的key/value存储都可以归为此类,value其实不仅是String,  
  12. 也可以是数字:比如想知道什么时候封锁一个IP地址(访问超过几次)。INCRBY命令让这些变得很容易,通过原子递增保持计数。  
  13.   
  14. 实现方式:  
  15. m,decr等操作时会转成数值型进行计算,此时redisObject的encoding字段为int。  

Hash

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. 常用命令:  
  2. hget,hset,hgetall 等。  
  3. 应用场景:  
  4. 我们简单举个实例来描述下Hash的应用场景,比如我们要存储一个用户信息对象数据,包含以下信息:  
  5.            用户ID,为查找的key,  
  6.            存储的value用户对象包含姓名name,年龄age,生日birthday 等信息,  
  7.    如果用普通的key/value结构来存储,主要有以下2种存储方式:  
  8.        第一种方式将用户ID作为查找key,把其他信息封装成一个对象以序列化的方式存储,  
  9.            如:set u001 "李三,18,20010101"  
  10.            这种方式的缺点是,增加了序列化/反序列化的开销,并且在需要修改其中一项信息时,需要把整个对象取回,并且修改操作需要对并发进行保护,引入CAS等复杂问题。  
  11.        第二种方法是这个用户信息对象有多少成员就存成多少个key-value对儿,用用户ID+对应属性的名称作为唯一标识来取得对应属性的值,  
  12.            如:mset user:001:name "李三 "user:001:age18 user:001:birthday "20010101"  
  13.            虽然省去了序列化开销和并发问题,但是用户ID为重复存储,如果存在大量这样的数据,内存浪费还是非常可观的。  
  14.     那么Redis提供的Hash很好的解决了这个问题,Redis的Hash实际是内
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值