一、redis简介

Redis是一个开源的,先进的key-value存储。它通常被称为数据结构服务器,因为键可以包含字符串、哈希、链表、集合和有序集合。

支持的数据类型:string(字符串)、list(集合)、set(集合)、zset(有序集合)。

支持的操作:这些数据类型支持push/pop、add/remove 等丰富的数据操作。支持不同方式的排序。

缓存:redis为了保证效率数据都是缓存在内存中的,为了防止系统突然崩溃从而导致内存中的数据丢失,它也可以周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。

redis用户:新浪微博是redis最大的用户,200多台物理机。

redis在新浪微博中的使用场景:

1、应用程序直接访问redis数据库

该方式与传统应用程序访问mysql类似,但该方式不安全。

2、应用程序直接访问Redis,只有当Redis访问失败后才访问Mysql

a、应用程序先访问redis server,redis与mysql集群进行数据同步

b、如果redis集群宕机后应用程序直接访问mysql集群

3、redis使用场景:

a、区最新N个数据的操作

b、排行榜应用、取TOP N操作

c、需要精确设定过期时间的应用

d、计数器应用

e、uniq操作、获取某段时间所有数据排重值

f、实时系统、反垃圾系统

g、Pub/Sub构建实时消息系统

h、构建队列系统

i、redis缓存

三、redis的安装

1、下载 https://redis.io/download 稳定版(stable)

a、解压:[root@localhost tools]# tar -zxvf redis-3.2.8.tar.gz

b、编译:[root@localhost redis-3.2.8]# make

#如果出现错误 gcc:命令未找到 则安装gcc yum install -y gcc g++ gcc-c++ make

#如果出现 tcl 问题 则安装tcl yum install tcl

c、安装 [root@localhost src]# make install

在src下将出现redis的相关命令(存放在解压后源码包下的src目录)

-rwxr-xr-x. 1 root root 5707211 2月 17 22:33 redis-cli 进入redis客户端命令

-rwxr-xr-x. 1 root root 7827978 2月 17 22:33 redis-server 启动redis服务命令

2、配置redis

(1)[root@localhost src]# mkdir -p /usr/local/redis/bin 创建文件夹用户存储redis命令

(2)[root@localhost src]# mkdir -p /usr/local/redis/etc 创建文件夹用户存储redis配置文件

(3)将/tools/redis-3.2.8下的 redis.conf移动到/usr/local/redis/etc下

[root@localhost redis-3.2.8]# mv ./redis.conf /usr/local/redis/etc

(4)将/tools/redis-3.2.8/src下的 mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-check-rdb、redis-cli、redis-server移动到/usr/local/redis/bin下

(5)启动redis服务:进入redis bin目录下 /usr/local/redis/bin

[root@localhost bin]# ./redis-server

#如果出现 -bash: ./redis-server: 权限不够

#查看权限:[root@localhost bin]# ls -l | grep -i redis-server

#赋予xr权限 :[root@localhost bin]# chmod 755 redis-server

[root@localhost bin]# ls -l | grep -i redis-server 
-rw-rw-r--. 1 root root 7827978 2月 17 22:52 redis-server
[root@localhost bin]# chmod 755 redis-server
[root@localhost bin]# ls -l | grep -i redis-server
-rwxr-xr-x. 1 root root 7827978 2月 17 22:52 redis-server

提示信息

[root@localhost bin]# ./redis-server 
5322:C 17 Feb 23:18:39.086 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf 5322:M 17 Feb 23:18:39.087 * Increased maximum number of open files to 10032 (it was originally set to 1024). _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 3.2.8 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 | `-._ `._ / _.-' | PID: 5322 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 5322:M 17 Feb 23:18:39.113 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 5322:M 17 Feb 23:18:39.113 # Server started, Redis version 3.2.8 5322:M 17 Feb 23:18:39.114 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 5322:M 17 Feb 23:18:39.114 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled. 5322:M 17 Feb 23:18:39.114 * The server is now ready to accept connections on port 6379

安装成功端口 6379

使用指定的配置文件启动redis服务器

[root@localhost bin]# ./redis-server /usr/local/redis/etc/redis.conf

四、redis后台运行解决方法:

vi /usr/local/redis/etc/redis.conf

################################# GENERAL #####################################

# By default Redis does not run as a daemon. Use 'yes' if you need it.

# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.

daemonize no

#daemonize no:默认启动方式该方式占用一个窗口,一旦ctrl+c redis服务器就关闭

#daemonize yes:将redis的启动方式改为后台运行

进入:redis 客户端

[root@localhost bin]# pwd

/usr/local/redis/bin

[root@localhost bin]# ./redis-cli

127.0.0.1:6379>

关闭redis服务器:

[root@localhost bin]# pkill redis-serve (通过进程的方式)

[root@localhost bin]# ./redis-cli shutdown(通过redis命令)

************************************** Redis配置 **********************************************

Redis主从复制:

redis只需在从服务器(slave)上配置即可:

slaveof 211.122.11.11 6379 #指定master 的ip 和端口

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 设置VM IO同时使用的线程数量

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

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

Activerehashing 重新hash

*******************************************************************

Redis常用命令

键/值相关命令。

keys * #查询所有

keys user*#查询指定的

exists user:001#判断是否存在。

del name#删除指定的键。

expire addr 10#设置过期时间

ttl addr#查询过期时间

select 0 #选择数据库

move age 1#将age移到1数据库。

get age #获取

persist age#移除age的过期时间。

randomkey#随机返回一个key

rename name1 name2#重命名键

type myset#返回键的类型。

ping #测试redis连接是否存活。

echo lamp#输出一个lamp

select 10#选择数据库。

quit/exit/crtl+C#退出客户端

dbsize#返回库里的键的个数。

服务器相关命令:

info#显示redis服务器的相关信息。

config get */loglevel #返回所有/指定的配置信息。

flushdb#删除当前库中的所有键/表。

flushall#删除所有数据库中的所有键/表

Redis 学习之简介及安装的更多相关文章

  1. redis学习——day01_redis简介与安装

    一.Redis 简介 1.1 Redis是什么 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统.Redi ...

  2. Redis学习笔记2-Redis的安装体验

    Redis的官方只提供了Linux版本的,并没提供Windows版本的(不过非官方有windows版本的.可以下载下来做开发测试学习用非常方便.博客后面会介绍到的).Linux下安装过程如下[以下命令 ...

  3. redis学习之一 - linux下安装配置

    Content 0.序 1.如何安装? 2.配置参数及其意义 3.设为linux服务 0.序 本文主要是记录Redis在 Centos下的安装配置 .文中如无特别说明.表示redis-3.2.10代码 ...

  4. Redis学习笔记——简介及配置

    1.Redis简介 Redis概述 Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的应用程序的完美解决方案.Redis从它的许多竞争继承来的三个主要特点:Redis数据库 ...

  5. redis学习心得之一【安装redis初体验】

    在linux下安装redis 说起这个比mysql的安装过程简单多乐,它不需要configure,只需要解压之后make就可以,无需make install ~$ wget http://redis. ...

  6. solr 学习之简介及安装

    一.solr简介 Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展,并对索 ...

  7. 尚硅谷redis学习1-NOSQL简介2

    NoSql数据模型简介 聚合模型:KV键值,BSON 列族: 图形,这里的图形不是指真正的图形,而是关系图 NoSql数据库的四大分类 KV键值:BerkeleyDB,Redis,tair,memca ...

  8. Redis 学习第一课:安装Linux Redis(Ubantu)

    对于分布式缓存,之前公司项目中只使用了MemCached,使用比较方便,有现成的C#版本组件. 如今用Redis的公司有很多,所以打算了解一下Redis. Redis的官网地址:http://redi ...

  9. 大数据技术之_11_HBase学习_01_HBase 简介+HBase 安装+HBase Shell 操作+HBase 数据结构+HBase 原理

    第1章 HBase 简介1.1 什么是 HBase1.2 HBase 特点1.3 HBase 架构1.3 HBase 中的角色1.3.1 HMaster1.3.2 RegionServer1.3.3 ...

随机推荐

  1. Layoutparams理解

    一. layoutparams是什么LayoutParams继承于Android.View.ViewGroup.LayoutParamsLayoutParams只是ViewGroup的一个内部类 vi ...

  2. pixi.js

    添加基本文件(库文件) 渲染库 pixi.js pixi.lib.js是pixi.js的子集,依赖class.js,cat.js,event_emiter.js文件 pixi.scroller.js ...

  3. 输入一个数字n 如果n为偶数则除以2,若为奇数则加1或者减1,直到n为1,求最少次数 写出一个函数

    题目: 输入一个数字n  如果n为偶数则除以2,若为奇数则加1或者减1,直到n为1,求最少次数  写出一个函数 首先,这道题肯定可以用动态规划来解, n为整数时,n的解为 n/2 的解加1 n为奇数时 ...

  4. 浅析JS中的模块规范AMD和CMD

    一.AMD AMD就只有一个接口:define(id?,dependencies?,factory); 它要在声明模块的时候制定所有的依赖(dep),并且还要当做形参传到factory中,像这样: d ...

  5. CF #CROC 2016 - Elimination Round D. Robot Rapping Results Report 二分+拓扑排序

    题目链接:http://codeforces.com/contest/655/problem/D 大意是给若干对偏序,问最少需要前多少对关系,可以确定所有的大小关系. 解法是二分答案,利用拓扑排序看是 ...

  6. LVS+Keepalived实现DBProxy的高可用

    背景 在上一篇文章美团点评DBProxy读写分离使用说明实现了读写分离,但在最后提了二个问题:一是代理不管MySQL主从的复制状态,二是DBProxy本身是一个单点的存在.对于第一个可以通过自己定义的 ...

  7. php-fpm死机解决办法,脚本后台自动重启

    本人用nginx+php7搭建了一台服务器,因为请求量太大,而且php里面又有挂起的任务,导致php-fpm在高峰期的时候经常死掉,吧php-fpm的最大进程数已经改到1000了,还是吃不消,cpu也 ...

  8. codeforces 757F Team Rocket Rises Again

    链接:http://codeforces.com/problemset/problem/757/F 正解:灭绝树. mdzz倍增lca的根节点深度必须是1..我因为这个错误调了好久. 我们考虑先求最短 ...

  9. oracle表信息

    获取表: select table_name from user_tables; //当前用户的表 select table_name from all_tables; //所有用户的表 select ...

  10. add,update,list.jsp源码

    add:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncod ...