redis学习笔记——(1)

1. NoSQL&Redis介绍

       NoSQL,Not Only SQL,是非关系型的数据库。传统的关系数据库不能满足超大规模和高并发的应用。

       是以Key-Value的形式存储,(例如JSON,XML),不一定遵循传统数据库的一些基本要求,比如SQL标准、ACID属性(Atomicity/ Consistency/Isolation/Durability)、表结构等。主要有以下的特点:非关系型的、分步式的、开源的、水平可扩展的(指能够连接多个软硬件的特性)。

       NoSQL适用场景:

              1)、High performance - 对数据高并发读写

              2)、Huge storage - 对海量数据的高效率存储和访问

              3)、High scalability && HighAvailability - 对数据的高可扩展性和高可用性

       开源的NoSQL数据库:Redis, MongoDB, Cassandra…...

       Redis的介绍

       Redis是一个Key-Value存储系统。它支持存储的value类型有:string(字符串),list(链表), set(无序集合),zset(sorted set有序集合)和hash,也可以把redis看成一个数据结构服务器。这些数据类型都支持pust/popadd/remove及取交集、并集和差集运算,Redis支持各种不同方式的排序。数据都是缓存在内存中的,它也可以周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并实现了master-slave(主从)同步。

       Redis提供的API语言包括C、C++、C#、Java、JavaScript、Lua、Objective-C、Perl、PHP、Python、Ruby、Go、Tcl等。

       使用Redis:新浪微博,200+ Server、400 port、4G data.

       使用方式:与memcache相同

              1. 应用程序直接访问Redis数据库;

              2. 应用程序直接访问Redis,只有当访问Redis失败时才访问MySQL

       应用场合:

              1. 取最新N个数据的操作

              2. 排行榜应用

              3. 需要精确设定过期时间的应用

              4. 计数器应用

              5. Uniq操作,获取某段时间所有数据排重值

              6. 实时系统,反垃圾系统

              7. Pub/Sub构建实时消息系统

              8. 构建队列系统

              9. 缓存

              10. 存储微博关注关系

       Redis有库无表无字段无行列。MongoDB有库有集合(对应于Mysql中的表)

2. Redis的安装

       官网:http://redis.io

       步骤一:

              下载安装包:

              wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz

       步骤二:

              编译源代码:

              tarzxvf redis-2.4.17.tar.gz

              cdredis-2.4.17

              make

              cdsrc

              makeinstall

              注:make完成后,有产生可执行文件

                     redis-server:redis服务器的启动程序

                     redis-cli:redis命令行工具,也可为客户端

                     redis-benchmark:redis性能测试工具(读写)

                     redis-stat:redis状态检测工具(状态参数延迟)

       步骤三:(非必须)

              移动文件,便于管理

              mkdir –p /usr/local/redis/bin

              mkdir –p /usr/local/redis/etc

              mv redis-2.4.17/redis.conf/usr/local/redis/etc

              mvmkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli   redis-server /usr/lcoal/redis/bin

       步骤四:

              启动redis服务

              /usr/local/redis/bin/redis-server(有警告,没有加载配置文件)

              /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

              Redis服务端的默认连接端口是6379

              Redis默认不是后台运行

       步骤五:

              客户端连接

              /usr/local/redis/bin/redis-cli

              或者其他客户端:如phpredis

 

[php] view plaincopyprint?
  1. $redis = new Redis();  
  2. $redis->connect(“127.0.0.1”, 6379);  

 

       步骤六:

              停止Redis

              /usr/local/redis/bin/redis-clishutdown

              or

              pkill redis-server

3.  Redis的配置

              daemonize 如果需要在后台运行,把该项改为yes

              pidfile 配置多个pid的地址,默认在/var/run/redis.pid

              bind 绑定ip,设置后只接受自该ip的请求

              port 监听端口,默认为6379

              timeout 设置客户端连接时的超时时间,单位为秒

              loglevel 分为4级,debug、verbose、notice、warning

              logfile 配置log文件地址

              databases 设置数据库的个数,默认使用的数据库为0

              save 设置redis进行数据库镜像的频率,保存快照的频率,第一个*表示多长时间,       第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。

              rdbcompression 在进行镜像备份时,是否进行压缩

              Dbfilename 镜像备份文件的文件名

              Dir 数据库镜像备份的文件放置路径

              Slaveof 设置数据库为其他数据库的从数据库 

              Masterauth 主数据库连接需要的密码验证

              Requirepass 设置登录时需要使用的密码

              Maxclients 限制同时连接的客户数量

              Maxmemory 设置redis能够使用的最大内存

              Appendonly 开启append only模式

              appendfsync 设置对appendonly.aof文件同步的频率

              vm-enabled 是否虚拟内存的支持

              vm-swap-file 设置虚拟内存的交换文件路径

              vm-max-memory 设置redis使用的最大物理内存大小

              vm-page-size 设置虚拟内存的页大小

              vm-pages 设置交换文件的总page数量

              vm-max-threads 设置VMIO同时使用的线程数量

              glueoutputbuf 把小的输出缓存存放在一起

              hash-max-zipmap-entries 设置hash的临界值

              activerehashing 重新hash

转载于:https://www.cnblogs.com/dyc-cfc/p/4262616.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

命令模式坚决svn树冲突(local unversioned, incoming add upon update)

当工作目录修改删除过时更新使用svn更新就容易发生树冲突“Tree Confilict”.会出现类似提示。 local unversioned, incoming add upon update1local unversioned,incoming add upon update如果使用图形化客户端可以通过对比文件和解决冲突按钮进行解决, 如果是使用…

c++ vector学习

参考资料: cppreference.com 本文代码: 本文源码 目录隐式成员函数1.operator (赋值给容器)2.assign (将值赋给容器)元素访问3.at (访问指定元素,进行下标检查)4.operat…

linux关闭声音

对于CentOS/Redhat/RHEL/Fedora系统,使用root身份执行:echo "alias pcspkr off" >> /etc/modprobe.conf转载于:https://www.cnblogs.com/keethebest/p/3434821.html

Bundle Identifier

Bundle Identifier : 产品的唯一标识符 1.在模拟器上面,只能有一个唯一的标识符的应用程序 2.在AppStore上,所有的应用程序的Bundler ID都是唯一的 Bundle ID 公司的反向域名 产品名 Bundle ID 不支持中文,因此如果是上架产品,需…

c++ array学习

参考资料: cppreference.com 本文代码: 本文源码 array和vector的区别是array是和C中的数组类似,不能动态改变数组大小,所以会比vector少很多函数。 目录隐式定义的成员函数1.operator (将另一个容器拷贝过来&#x…

lucene4入门(2)搜索

欢迎转载http://www.cnblogs.com/shizhongtao/p/3440479.html 接着上一篇,这里继续搜索,对于搜索和创建一样,首先你要确定搜索位置,然后用规定的类来读取。还要注意一点,确定分词器,因为不同的分词器所创建…

Topcoder SRM 648 (div.2)

第一次做TC全部通过&#xff0c;截图纪念一下。 终于蓝了一次&#xff0c;也是TC上第一次变成蓝名&#xff0c;下次就要做Div.1了&#xff0c;希望div1不要挂零。。。_(:зゝ∠)_ A. KitayutaMart2 万年不变的水题。 #include<cstdio> #include<cstring> #include&…

Kadane's algorithm学习

Kadane’s algorithm 简单来说就是用来计算数组中的连续子数组之和最大是多少 vector<int> vec; int temp 0,ans 0; for(int i0;i<vec.size();i){temp max(tempvec[i],vec[i]);ans max(temp,ans); } return ans;循环的第一行就是用来比较当前位置的值和前面数组…

好用的ajax后台框架

dwz 简单实用的国产jquery Ui框架 http://www.j-ui.com/#_blank转载于:https://www.cnblogs.com/userbibi/p/3441382.html

OpenFire源码学习之十九:在openfire中使用redis插件(上)

Redis插件 介绍 Redis是目前比较流行的NO-SQL&#xff0c;基于K,V的数据库系统。关于它的相关操作信息&#xff0c;本人这里就不做重复了&#xff0c;相关资料可以看这个网站http://www.redis.io/(官网)、http://www.redis.cn/(中文站)。 这里本人想说的是&#xff0c;拿Redis做…

c++ queue学习

参考资料&#xff1a; cppreference.com 本文代码&#xff1a; 本文源码 目录成员函数1.operator &#xff08;赋值给容器&#xff09;元素访问2.front &#xff08;访问第一个元素&#xff09;3.back &#xff08;访问最后一个元素&#xff09;容量4.empty &#xff08;判断容…

没有文件扩展“.js”的脚本引擎问题解决

安装MinGW的时候提示没有文件扩展“.js”的脚本引擎。原因&#xff1a;系统安装Dreamwear、UltraEdit、EditPlus后修改了.js文件的默认打开方式。当想直接执行js脚本时就会出现此错误。解决办法&#xff1a;打开注册表编辑器&#xff0c;定位[HKEY_CLASSES_ROOT.js]这一项&…

160 - 54 eKH

环境&#xff1a;windows xp 工具&#xff1a; 1、OllyDBG 2、IDA 3、exeinfo 查壳发现是程序无壳且用Delphi语言编写 可以通过搜索字符串的方式定位关键函数地址 这里定位到是 00427B44ReadInput(a2, &v17); // 读取输入的usernameif ( StrL…

点赚接口(第二版)

1.查看是否有新消息 url&#xff1a;/get/message/status?user_id{user_id} method&#xff1a;get response&#xff1a; {"code": "ok","msg": "","data": 0 //新消息数目 } 2.获取消息列表 url&#xff1a;/get/messa…

Java基础之线程——使用Runnable接口(JumbleNames)

控制台程序。 除了定义Thread新的子类外&#xff0c;还可以在类中实现Runnable接口。您会发现这比从Thread类派生子类更方便&#xff0c;因为在实现Runnable接口时可以从不是Thread的类派生子类&#xff0c;并且仍然表示线程。Java只允许有单个基类&#xff0c;如果类派生于Thr…

cpri带宽不足的解决方法_白皮书:FPGA赋能下一代通信和网络解决方案(第四部分)...

对PCIe Gen 5的支持除了以太网和存储控制器&#xff0c;Speedster7t FPGA上提供的对PCIe Gen 5的支持还能够与主机处理器紧密集成&#xff0c;以支持诸如sidecar智能网卡(SmartNIC)设计等高性能加速器应用。PCI Gen 5控制器使其能够读取和写入存储在FPGA内存层级结构中的数据&a…

laravel里面使用event

模式&#xff1a;大概是通过一个自定义的event&#xff0c;一个handler&#xff0c;还有一个binder&#xff0c;然后用来简化通知模型 生成自定义的event ./artisan make:event MyEvent 生成自定义的handler ./artisan handler:event MyEventHandler --eventMyEvent 然后在Even…

C语言的条件编译#if, #elif, #else, #endif、#ifdef, #ifndef

有些程序在调试、兼容性、平台移植等情况下可能想要通过简单地设置一些参数就生成一个不同的软件&#xff0c;这当然可以通过变量设置&#xff0c;把所有可能用到的代码都写进去&#xff0c;在初始化时配置&#xff0c;但在不同的情况下可能只用到一部分代码&#xff0c;就没必…

山体等高线怎么看_每日一题 | 此处向斜山,你看出来了吗?

每日一题 | 此处向斜山&#xff0c;你看出来了吗&#xff1f;(2018江苏高考)如图为某区域地质简图。该区沉积地层有Q、P、C、D、S2、S1&#xff0c;其年代依次变老。读图回答1&#xff5e;2题。1&#xff0e;从甲地到乙地的地形地质剖面示意图是(  )2&#xff0e;为揭示深部地…

cmake The source directory xxxx does not appear to contain CMakeLists.txt

执行 cmake . 的时候报错&#xff1a; The source directory “xxxx” does not appear to contain CMakeLists.txt 简单来说就是当前文件夹里面没有 CMakeLists.txt