Redis基础应用

redis是一个开源的可基于内存可持久化的日志型,key-value数据库
redis的存储分为内存存储,磁盘存储和log文件三部分
配置文件中有三个参数对其进行配置

优势:
和memcached相比,它支持存储的value类型相对更多,
包括strings,lists,zsets(sorted set)和hashes
redis会周期性的吧更新的数据写入磁盘或者把修改操作写入追加的记录文件
并且在此基础上实现了master-slave(主从)同步

redis服务器
服务器程序:redis-server
客户端程序:redis-cli
主配置文件:/etc/redis/redis_portnumber
启动脚本:/root/redis-3.0.6/utils install_server.sh

部署redsi
[root@web ~]# yum -y install gcc
[root@web ~]# tar -xf redis-3.0.6.tar.gz
[root@web ]# cd redis-3.0.6
[root@web redis-3.0.6]# make
[root@web redis-3.0.6]# make install
[root@web utils]# ./install_server.sh(启动)
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
[root@web ~]# redis-cli (测试服务器)
127.0.0.1:6379> ping
PONG
[root@web ~]# redis-cli
127.0.0.1:6379> set hydra xxx(写数据)
OK
127.0.0.1:6379> get hydra(查数据)
"xxx"

——————————————————————————————————————————————

数据库操作指令

string字符串操做
set name value [ex seconds] [px milliseconds] [nx|xx]:设置name及value,过期时间可以设置为秒或毫秒为单位
nx只有name不存在,才对name进行操作
xx只有name存在,才对name进行操作
。。。。。。。。
STRLEN name:统计字串长度
append name value:字符存在则追加,不存在则创建
setbit name offset value:对name所存储字串,设置或清除特定偏移量上的位(bit)
bitcount name:统计字串中被设置为1的比特位数量
decr name:将name中的值减1,name不存在则先初始化为0,再减1
incr name:将name的值加1,如果name不存在,则初始化为0后再加上1,主要应用为计数器
getrange name start end:返回字串值中的子字串,截取范围为start和end
getbit name offset:对name中的值,获取偏移量上的位,offset比字串长度大,或name不存在,则返回0
incrbyfloat name increment:为naem中所存储的值加上浮点数增量 increment
mget name name2:可以获取多个值
mset naem name2:可以设置多个值

Hash表
redis hash是一个string类型的field和value的映射表
一个name可对应多个filed,一个field(列)对应一个value(值)
将一个对象存储为hash类型,较于每个字段都存储成string类型更能节省内存

hmset name 列1 值1 列2 值2;同时给hash表中的多个列赋值
hget name 列;获取hash表中列的值
hsetnx name 列 值;当列不存在时,给hash表的列赋值
keys *;查看所有数据

list列表(先进后出)
redis的list是一个字符队列,一个key可以有多个值

list列表操作(具体操作参考手册)
lpush name value [value。。。]:将一盒或多个值value插入到表name的表头,name不存在,则创建name
127.0.0.1:6379> lpush xx a b c(list1值依次为c b a)
lrange name start stop:从开始位置读取到name的值到stop结束
127.0.0.1:6379> LRANGE xx 0 -1
1) "c"
2) "b"
3) "a"
lpushx name value:仅当name存在,则向name中插入一个值,否则返回空
lpop name:移除并返回列表头元素数据,name不存在则返回nil
llen name:返回列表name的长度

set集合简介
set类型是没有排序的字符集合,和list类型一样,可以在该类型的数据值上执行添加
删除等操作
和list类型不同的是,set集合中不允许出现重复的元素,
具体操作参考redis手册

————————————————————————————————————————————————————————————

redis高级应用

服务器设置

配置文件解析
[root@web ~]# vim /etc/redis/6379.conf
maxmemory <bytes>:最大内存
maxmemory-policy volatile-lru:内存满时,使用lur算法清理旧数据
daemonize yes:守护进程
pidfile /va/run/redis_6379.pid:进程pid
port 6379:端口号
timeout 300:链接超时时间
loglevel notice:日志级别
logfile /var/log/redis_6379.log:日志文件
databases 16:数据库个数
save 900 1:数据库镜像频率
dbfilename dump.rdb:镜像备份文件名
/va/lib/redis/6379:备份文件路径
save 900 1
save 300 10
save 60 10000
注释:如果有10000个keys变化则镜像备份
否则,如果有300秒内有10个keys变化则镜像备份
否则,如果有900秒内有1个key变化则镜像备份

slaveof <masterip> <masterport>:设置主服务器ip及端口,主动与主服务器同步数据
masterauth <master-password>:主从认证密码
requirepass foobared:客户端连接服务器后需要先输入密码,在做其他操作
maxclients 10000:最大客户端并发连接数量
maxmemory <bytes>:最大内存使用量

主服务器操作:
安装部署软件
[root@web lnmp_soft]# tar -xf redis-3.0.6.tar.gz
[root@web lnmp_soft]# cd redis-3.0.6
[root@web redis-3.0.6]# make
[root@web redis-3.0.6]# make install
[root@web redis-3.0.6]# ./utils/install_server.sh(初始化)
修改配置文件
[root@web redis-3.0.6]# vim /etc/redis/6379.conf
requirpass 123456(创建主服务器密码)
[root@web redis]# vim /etc/init.d/redis_6379(修改启动脚本)
$CLIEXEC -a 123456 -p $REDISPORT shutdown(-a 密码)
[root@web redis-3.0.6]# /etc/init.d/redis_6379 restart

从服务器操作
从服务器默认不支持写数据,只读
[root@web2 lnmp_soft]# tar -xf redis-3.0.6.tar.gz
[root@web2 lnmp_soft]# cd redis-3.0.6
[root@web2 redis-3.0.6]# make
[root@web2 redis-3.0.6]# make install
[root@web2 redis-3.0.6]# ./utils/install_server.sh(初始化)
修改配置文件
[root@web redis-3.0.6]# vim /etc/redis/6379.conf
slaveof 192.168.2.100 6379 (主服务器ip 端口)
masterauth 123456(主服务器密码)
[root@web2 redis-3.0.6]# /etc/init.d/redis_6379 restart

——————————————————————————————————————————————————

linux redis基础应用 主从服务器配置的更多相关文章

  1. linux - redis基础

    目录 linux - redis基础 redis 源码编译安装 redis 数据结构 1. strings类型 2. list 类型 3. sets集合类型 有序集合 5. 哈希数据结构 centos ...

  2. Linux - redis主从同步

    目录 Linux - redis主从同步 环境准备 配置主从同步 测试写入数据,主库写入数据,检查从库数据 手动进行主从复制故障切换 Linux - redis主从同步 原理: 从服务器向主服务器发送 ...

  3. mysql主从复制、redis基础、持久化和主从复制

    一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroo ...

  4. redis的使用和安装,redis基础和高级部分

    redis的使用和安装,redis基础和高级部分 在后端开发中,为了提高性能,对于一些经常查询但是又不太变化的内容会使用redis,比如前端的列表展示项等,如果数据有变化也可以清空缓存,让前端查一次数 ...

  5. linux Redis 5.0集群搭建

    文档结构如下: Redis cluster 是redis的分布式解决方案,在3.0版本正式推出后,有效的解决了redis分布式方面的需求:当遇到单机内存,并发,流量等瓶颈是,可以采用cluster架构 ...

  6. 转: Redis基础总结

    转文:http://blog.csdn.net/basycia/article/details/52175429 1.redis是什么 2.redis的作者何许人也 3.谁在使用redis 4.学会安 ...

  7. windows下使用redis,Redis入门使用,Redis基础命令

    windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...

  8. [.net 面向对象程序设计深入](14)Redis——基础

    [.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...

  9. [.net 面向对象程序设计深入](36)Redis——基础

    [.net 面向对象程序设计深入](36)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...

随机推荐

  1. JAVA中默认的编码方式

    转:http://blog.csdn.net/scyatcs/article/details/31356823 编码问题存在两个方面:JVM之内和JVM之外.1.Java文件编译后形成class这里J ...

  2. 生成csv格式文件并导出至页面的前后台实现

    一.前台实现: 1. HTML: <div> <a href="javascript:void(0);" class="btnStyleLeft&quo ...

  3. ansible playbook实践(三)-yaml文件写法

    playbook基于YAML语法来编写,基本语法规则如下: 1.大小写敏感 2.使用缩进表示层级关系 3.缩进时不允许使用Tab键,只允许使用空格 4.缩进的空格数目不重要,只要相同层级的元素左侧对齐 ...

  4. iOS-image图片压缩

    ///压缩图片 + (NSData *)imageCompressToData:(UIImage *)image{ NSData *data=UIImageJPEGRepresentation(ima ...

  5. ABP官方文档翻译 6.4 导航

    导航 创建菜单 注册导航提供者 显示菜单 每一个网络应用都会有一些菜单用来在pages/screens之间导航.ABP提供了通用的基础设施来创建并显示菜单. 创建菜单 应用可以由不同的模块组成,每一个 ...

  6. 【Tomcat】Tomcat的使用

    第一章 JDK的安装 1.1  windows下安装 1.1.1  配置环境变量 安装完成后,还要进行 Java 环境的配置,才能正常使用,步骤如下: (1)在我的电脑点击右键——〉选择属性, (2) ...

  7. BZOJ 3309: DZY Loves Math [莫比乌斯反演 线性筛]

    题意:\(f(n)\)为n的质因子分解中的最大幂指数,求\(\sum_{i=1}^n \sum_{j=1}^m f(gcd(i,j))\) 套路推♂倒 \[ \sum_{D=1}^n \sum_{d| ...

  8. 自动化测试selenium(三) 由于iframe 定位不到元素

    iframe原因定位不到元素 现在的项目后台基本都是上左右结构,要出现这个结构效果,需要使用到了iframe标签: 我们先说说iframe在java中使用的方法: driver.switchTo(). ...

  9. 网络编程之socketserver

    网络编程之socketserver """ socketserver.py 中的5个基础类 +------------+ | BaseServer | +-------- ...

  10. Jenkins持续集成-自动化部署脚本的实现

    要实现Jenkins端的持续集成,其实在CI服务配置端很容易,难点呢?就是如何实现自动化的部署.我的脚本设计就是为了解决以下难题: 难点一.如何使得自动化部署脚本更通用 我用的脚本,依赖依赖一个配置文 ...