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. zabbix action理解

    Maintenance status not in maintenance   谷歌翻译:维护状态不在维护中,中文意思就是监控的设备有problem,触发器报警了,然后执行action {TRIGGE ...

  2. oracle光标的使用

    以下plsql程序用的scott用户的dept,emp表. 1.光标的使用: --查询并打印员工的姓名名和薪水 /* 光标属性: %found %notfound */ set serveroutpu ...

  3. spring重要类说明

  4. JFinal源码 分析之 Core包分析

    ActionHandler.java 这个类继承了上面 说的Handler类,首先我们 上 几个属性 ,下面几个 属性我们 需要 关心哪些东西 呢?首先 是ActionMapping和RenderMa ...

  5. 随机切换IP和UA

    在爬虫爬取过程中,网站会根据我们的IP和UA去确认到底是浏览器操作还是爬虫在操作,所以,为了让爬虫不被网站禁止,随机切换Ip 和UA是很重要的,因为这个类在各个爬虫中经常要用到,所以可以自已维护一份随 ...

  6. 从源码安装go 1.2.2

    获取代码 以下命令会创建一个go目录.切换到相应目录,并且确保当前位置不存在go目录,运行命令: hg clone -r release https://go.googlecode.com/hg/ g ...

  7. ABP官方文档翻译 9.3 NHibernate集成

    NHibernate集成 Nuget包 配置 实体映射 仓储 默认实现 自定义仓储 应用程序特定基础仓储类 ABP可以使用任何ORM框架,它内置集成NHibernate.此文档将讲解ABP如何使用NH ...

  8. xBIM IFC 输出 Excel 报表

    目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...

  9. bzoj 1598: [Usaco2008 Mar]牛跑步 [k短路 A*] [学习笔记]

    1598: [Usaco2008 Mar]牛跑步 题意:k短路 ~~貌似A*的题目除了x数码就是k短路~~ \[ f(x) = g(x) + h(x) \] \(g(x)\)为到达当前状态实际代价,\ ...

  10. 一个Dotnet数据框架的bug

    好久没写C#代码了,今天在维护公司老项目时,偶然发现一个BUG.记录一下,后面的同学就不要踩坑啦. -------------------------------------------------- ...