Nosql

Mongodb 聚合 排序 分页出现重复记录问题。

如下语句:

db.Videos.aggregate([ { $match : { $and : [{"TypeName":"C"}, {op:{$elemMatch:{"oid":1}}}, {"Properties.cateid":{$in:["f93c3508-6a97-4ee5-bb17-841603cee15a"]}}] } }, {$sort : {"CreateTime":-1} } ,{$skip:10},{$limit:10}])

当数据的CreateTime有一样的时候,翻页会出现重复记录。

解决方法

看起来排序的CreateTime字段不是唯一的,因此在后续执行中顺序可能不同。要解决此问题,可以向$sort. 添加一个_id字段。由于_id总是独一无二的,它可以成为一个很好的选择。尝试:

{"$sort":{
    "CreateTime":-1,
    "_id": -1
}}

centos7 yum install redis

直接yum 安装的redis 不是最新版本

yum install redis

如果要安装最新的redis,需要安装Remi的软件源,官网地址:http://rpms.famillecollet.com/

yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

然后可以使用下面的命令安装最新版本的redis:

yum --enablerepo=remi install redis

安装完毕后,即可使用下面的命令启动redis服务

service redis start
或者
systemctl start redis

redis安装完毕后,我们来查看下redis安装时创建的相关文件,如下:

rpm -qa |grep redis

rpm -ql redis

查看redis版本:

redis-cli --version

 

设置为开机自动启动:

chkconfig redis on

MongoDB是什么?看完你就知道了!

一、概述

1.MongoDB是什么?用一句话总结

MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统。没错MongoDB就是数据库,是NoSQL类型的数据库。

2.为什么要使用MongoDB?

(1)MongoDB提出的是文档、集合的概念,使用BSON(类JSON)作为其数据模型结构,其结构是面向对象的而不是二维表,存储一个用户在MongoDB中是这样子的。…

如何根据性能选择内存NoSQL数据库?

导读:NoSQL数据库系统发展迅速,常见的有Redis,Tarantool ,CouchBase等等。那么对于用户来说,该如何选择呢?接下来我们将会结合性能测试工具Yahoo! Cloud Serving Benchmark(YCSB)来对几款常用内存NoSQL进行性能对比,以找出最优方案。

本文主要内容是测试了不同NoSQL数据库在测试工具YCSB中的表现。我们选取了3款流行的内存(in-memory)数据库管理系统:Redis,Tarantool 以及 CouchBase,还有缓存系统Memchached。Memchached虽然不属于数据库管理系统但常作为快速存储系统使用。…

                

面试中关于Redis的问题看这篇就够了

就我个人而言,我觉得Redis的基本使用是我们每个Java程序员都应该会的。另外,如果需要面试的话,一些关于Redis的理论知识也需要好好的学习一下。学完Redis之后,对照着下面8点看看自己还有那些不足的地方,同时,下面7点也是面试中经常会问到的。另外,《Redis实战》、《Redis设计与实现》是我比较推荐的两本学习Redis的书籍。

  1. Redis的两种持久化操作以及如何保障数据安全(快照和AOF)
  2. 如何防止数据出错(Redis事务)
  3. 如何使用流水线来提升性能
  4. Redis主从复制
  5. Redis集群的搭建
  6. Redis的几种淘汰策略
  7. Redis集群宕机,数据迁移问题
  8. Redis缓存使用有很多,怎么解决缓存雪崩和缓存穿透?

下面就一些问题给大家详细说一下。

什么是Redis?

Redis 是一个使用 C 语言写成的,开源的 key-value 数据库。。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。目前,Vmware在资助着redis项目的开发和维护。

Redis与Memcached的区别与比较

1 、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。memcache支持简单的数据类型,String。

2 、Redis支持数据的备份,即master-slave模式的数据备份。

3 、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用,而Memecache把数据全部存在内存之中

4、 redis的速度比memcached快很多

5、Memcached是多线程,非阻塞IO复用的网络模型;Redis使用单线程的IO复用模型。

Redis与Memcached的区别与比较

如果想要更详细了解的话,可以查看慕课网上的这篇手记(非常推荐) :《脚踏两只船的困惑 - Memcached与Redis》www.imooc.com/article/235…

Redis与Memcached的选择

终极策略: 使用Redis的String类型做的事,都可以用Memcached替换,以此换取更好的性能提升; 除此以外,优先考虑Redis;

使用redis有哪些好处?