nosql
关键词:redis、mongodb
热血吊车尾~
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mongodb新建分片和索引
use 数据库名称;db.createCollection("集合名称");//创建索引db.集合名称.ensureIndex({"字段A":"hashed"},{background:true});//新建分片sh.shardCollection("数据库名称.集合名称", {"字段A": "hashed"} );//创建索引db.集合名称.ensureIndex({"字段B":1,"字段C":1},{background:true});...原创 2022-04-24 14:21:36 · 1336 阅读 · 0 评论 -
使用redis事务保证原子性伪代码实现
1、redis的事务是通过MULTI、EXEC、DISCARD、WATCH、UNWATCH命令来实现的原伪代码如下:@Testpublic void test1() { final String REDIS_ROCK = "redis_lock"; String value = UUID.randomUUID().toString()+Thread.currentThread().getId(); try{ //TODO } finally {原创 2022-02-05 14:45:30 · 925 阅读 · 0 评论 -
redis使用lua脚本保证解锁原子性
RedisUtils工具类public class RedisUtils { private static JedisPool jedisPool; static { JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxTotal(20); jedisPoolConfig.setMaxIdle(10); jedisPo原创 2022-02-05 15:13:46 · 1026 阅读 · 0 评论 -
redis默认内存查看及调整
1、redis默认内存:如果不设置最大内存大小或者设置最大内存大小为0,在64位操作系统下不限制内存大小,在32位操作系统下最多使用3GB内存。2、生产上内存设置:一般推荐redis设置内存为最大物理内存的四分之三。3、内存修改的两种方式3.1 通过redis.conf配置文件修改格式:maxmemory 字节举例:maxmemory 1048576003.2 通过config命令修改格式:config set maxmemory 字节举例:config set maxmemory 104原创 2022-02-05 15:45:10 · 6873 阅读 · 0 评论 -
redis缓存和数据库双写一致性问题分析
文章目录1、最初级的缓存不一致问题以及解决方案2、比较复杂的数据不一致问题分析(读写并发导致数据不一致)1、最初级的缓存不一致问题以及解决方案问题:先修改数据库,再删除缓存,如果删除缓存失败了,那么会导致数据库中是新数据,缓存中是旧数据,数据出现不一致解决思路先删除缓存,再修改数据库,如果删除缓存成功了,如果修改数据库失败了,那么数据库中是旧数据,缓存中是空的,那么数据不会不一致因为读的时候缓存没有,则读数据库中旧数据,然后更新到缓存中2、比较复杂的数据不一致问题分析(读写并发导致数据不一致)原创 2022-02-11 00:10:08 · 638 阅读 · 0 评论 -
redis为什么是删除缓存,而不是更新缓存
redis为什么是删除缓存,而不是更新缓存呢?原因很简单,很多时候,复杂点的缓存的场景,因为缓存有的时候,不简单是数据库中直接取出来的值商品详情页的系统,修改库存,只是修改了某个表的某些字段,但是要真正把这个影响的最终的库存计算出来,可能还需要从其他表查询一些数据,然后进行一些复杂的运算,才能最终计算出现在最新的库存是多少,然后才能将库存更新到缓存中去比如可能更新了某个表的一个字段,然后其对应的缓存,是需要查询另外两个表的数据,并进行运算,才能计算出缓存最新的值的更新缓存的代价是很高的是不是说,原创 2022-02-10 23:41:58 · 2589 阅读 · 0 评论 -
redis单线程模型效率高的原因
1、纯内存操作2、核心是基于非阻塞的IO多路复用机制3、单线程反而避免了多线程的频繁上下嗯切换问题原创 2022-02-09 22:46:49 · 594 阅读 · 0 评论 -
基于redis SETNX命令实现分布式锁:加解锁
1、setNX命令说明:SET resource_name my_random_value NX PX 300002、代码演示:@Servicepublic class BaseSetNXDistributeLockService { private static final Logger LOGGER = LoggerFactory.getLogger(BaseSetNXDistributeLockService.class); @Autowired private R原创 2021-10-11 22:54:36 · 659 阅读 · 0 评论
分享