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. PDO prepare预处理语句

    预处理语句 $dsn="mysql:host=localhost;dbname=emp"; try{ $pdo=new PDO($dsn,'root','root'); }catc ...

  2. awk空行合并

    [root@localhost ~]#cat urfile [DEFAULT] key1=value1 key2=value2 key3=value3 [agent] key1=value1 key2 ...

  3. zabbix-proxy搭建

    环境: 因为公司需要监控远程客户机,但server端无法主动连接agent端,客户端可以连接公司ip 公司有固定ip,可以开放某个端口给zabbixserver,客户机agent端可以主动通过外网连接 ...

  4. linux ss 命令

    ss 是 Socket Statistics 的缩写.ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似.但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连 ...

  5. 01_Linux软件源配置

    一.国内软件源 阿里源:https://mirrors.aliyun.com/ 清华大学:https://mirrors.tuna.tsinghua.edu.cn/ 中科大 : https://mir ...

  6. 单元测试系列:Mock工具之Mockito实战

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6780719.html 在实际项目中写单 ...

  7. 轮询、长轮询、长连接、flash socket 的区别

    轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接. 优点:后端程序编写比较容易. 缺点:请求中有大半是无用,浪费带宽和服务器资源. 实例:适于小型应用. 长轮询:客 ...

  8. Java高并发的常见应对方案

    Java高并发的常见应对方案 一.关于并发我们说的高并发是什么? 在互联网时代,高并发,通常是指,在某个时间点,有很多个访问同时到来. 高并发,通常关心的系统指标与业务指标? QPS:每秒钟查询量,广 ...

  9. Zookeeper启动时报8080端口被占用

    zookeeper启动时报8080 端口被占用,导致启动失败.特别是服务器上部署了tomcat服务时需要注意. 通过查看zookeeper的官方文档,发现有3种解决途径: (1)删除jetty. (2 ...

  10. BZOJ 1086: [SCOI2005]王室联邦 [树上分块]

    portal 题意: 树分成若干块大小在$[s,3s]$之间,每块有一个根(可以不在块内),所有点到根路径上的点都必须在块内 据说这是一个保证了块大小直径个数的科学分块方法,貌似只有本题有用  我错了 ...