redis的简介

nosql入门

1.nosql
非关系型数据库的统称,它的几个特点:没有表、数据非结构化的、key-value格式进行存储、有自己的增删改查命令
2.nosql的产品有哪些?nosql产品的4大分类
redis,mongodb,hbase,memcache
3.使用场景
一般用在访问量比较大的场景中,用作缓存、消息系统等。
结构:网站架构以及nosql数据库在整个网站架构中所处的位置。
可以将一些实时的、高频的计算任务分配给nosql数据库,将计算结果在某个时间持久化到mysql中。
4.为什么nosql能够承载巨大的读写?
因为它是内存型数据库,即它的运行数据集都保存在内存中。我们之前的关系型数据库中的数据每次
读写都是一个IO操作,即需要从磁盘上读、然后写会磁盘。
 

二 认识redis

1)redis支持的数据类型还是比较丰富的,例如strings,lists,hash,set等数据类型。
2)redis还可以作为消息系统使用,提供了mq功能
3)redis每个实例都是单线程的
4)C语言编写,读写速度极高
5)支持主从复制、读写分离、集群
6)性能:这是redis赖以生存的看家本领,增加集群功能后当然不能对性能产生太大影响,所以redis采取了P2P而非Proxy方式、异步复制、客户端重定向等设计,而牺牲了部分的一致性。
7)可用性:在Cluster推出之前,可用性要靠Sentinel保证。有了集群之后也自动具有了Sentinel的监控和自动Failover能力。
8)水平扩展:集群的最重要能力当然是扩展,文档中称可以线性扩展到1000节点。

三 redis的运行模式

1)单机模式
在单机上运行一个redis实例,如果运行多个的话这些实例之间也没有任何关系。
2)主从模式
也称作是读写模式,也成为master-slave.
master负责写,slave负责读,slave不能进行写操作,它的数据全部来自于master。
哨兵模式,哨兵用来检测master是否可用,如果发现master不可用则会将slave设置成master,等原来的master恢复后自动变成slave.
只有一个master.
3)集群模式
无中新节点(去中心化)的很多redis实例,它的结构可以看做是多个master-slave的结合。
集群环境下,多个master,但是多个master各自有各自的槽,数据不同步
4.在web应用中,读、写两种操作哪个更频繁?
读更频繁,例如逛淘宝买衣服,逛了3天看了N多件最后下的订单。
5.理解误区
不要以为master不是redis,master、slave都是redis实例,都是安装好的一个redis软件。

四 redis启动 关闭

1.非守护进程方式启动
1)在任意目录下运行以下命令:
redis-server
即可启动redis。
2)验证是否启动成功
客户端登录
redis-cli
127.0.0.1:6379>ping
PONG
如果返回PONG则说明服务端正常启动。
3)非守护进程方式运行存在的问题
一旦ctrl+c退出命令行或者关闭xshell,redis服务器也就关闭了,无法再ping
2.守护进程方式启动
1)redis-server &
即可启动守护进程,测试ping,无异常
2)修改并在启动的时候指定redis.conf配置文件
cd /usr/local/bin
cp /usr/local/redis-3.2.11/redis.conf /usr/local/bin/6379.conf
vim 6379.conf
修改daemonize的值为yes,然后保存。
redis-server 6379.conf

3.注意
1)/usr/local/redis-3.2.11/redis.conf就是出厂设置文件。
2)如果在启动redis的时候,只运行redis-server命令,则会按照redis的出厂默认配置进行。
3)建议以redis-server xxx.conf格式的守护进程方式启动,会按照指定配置文件中的内容进行。
4.说说守护进程启动和非守护进程启动的区别?
守护进程保证了程序在后台一直运行。
5.关闭
1)kill命令
ps -ef | grep redis
kill -9 pid
2)登录客户端执行SHUTDOWN
redis-cli -p 6379
SHUTDOWN
备注:
a.SHUTDOWN命令有2个参数可供选择——SAVE|NOSAVE,默认SAVE会持久化redis中的数据到磁盘上
b.redis-cli -p 6379中的-p参数指定要登录的端口
6.卸载
源码方式安装:rm -f /usr/local/bin/redis-server等
yum方式安装:yum remove redis -y
7.常见错误
[root@iZ2ze9wnprrozvhc2eviueZ ~]# redis-server 6379.conf
10993:C 28 Feb 15:07:01.255 # Fatal error, can't open config file '6379.conf'
因为执行命令的目录没有在/usr/local/bin目录下,而6379.conf在/usr/local/bin目录下。
应该改为:
[root@iZ2ze9wnprrozvhc2eviueZ ~]# redis-server /usr/local/bin/6379.conf
备注:配置文件可放在任何一个目录

8.redis目录结构
redis-server        redis服务端
redis-cli            redis提供的客户端工具
redis-sentinel        搭建redis-sentinel(哨兵机制)集群,是redis实例的监控管理、通知和实例失效备援服务,是redis集群的管理工具。
redis-check-rdb        修复rdb持久化文件
redis-check-aof        修复aof持久化文件
redis-benchmark        redis性能测试工具
*.tcl                redis测试脚本
*.rb                依赖的ruby文件
tests目录            测试脚本存放的目录
utils目录            提供了一些工具

五:redis常用的一些关于数据库(系统)操作的基础命令
redis-server /etc/6379.conf            根据指定的配置文件加载server    
redis-cli -p 6379                    登录6379端口的server    
redis-cli -p 6379 -a password        使用密码password登录6379端口的server
redis-cli -h 192.168.1.1 -p 6379    登录指定IP指定端口的server
redis-cli -c -p 6379                以集群的方式登录端口为6379的集群中的一个节点
redis-cli --raw -c -p 6379            以可以获取中文字符的方式登录                            
keys h*llo                            查询符合指定通配符格式的key有哪些
select 10                            redis中默认创建16个库,该命令可以将操作切换到索引为10的,即第11个库上                    
exists key                            判断指定的key是否存在,如果存在返回1,否则返回0
expire key 60                        设置某一个key的生命周期,即存活时间。例如expire name 5,则5秒name就不存在了
del key                                从库中删除指定key的元素,可以删除任何数据类型的值
move key 1                            将某个一key移到指定索引的库里面
config get keyname                    获取指定配置文件中的key的配置信息
config set key value                设置指定配置文件中的key的配置信息
dbsize                                获得当前库中key的个数,跟占用的内存空间没关系    
flushdb                                删除当前库中所有的内容
flushall                            删除所有库中所有的内容
info                                查看当前redis配置信息
save                                同步内存中的数据到磁盘上,相当于word中的ctrl+s
shutdown                            关闭server,注意:不是退出客户端
exit                                退出当前客户端
quit                                退出当前客户端
rename age nianling                    将key为age的重命名为nianling
type key                            获取key的存储类型
randomkey                            获得一个随机的key
lastsave                            获得最后一次同步磁盘的时间

六:redis配置文件简介以及基础配置
1.通读redis.conf
该文件分为几大块,分别为:
INCLUDES、NETWORK、GENERAL、snapshottingTING、REPLICATION、SECURITY、LIMITS、CLUSTER、
APPEND ONLY MODE、SLOW LOG、LUA SCRIPTING、EVENT NOTIFICATION、ADVANCED CONFIG
每一块都是有自己配置内容。
注意:
在redis里面表示占用空间大小的方式有2种,一种单位为k,m,g,一种单位为kb,mb,gb。对应关系为:
1k => 1000 bytes
1kb => 1024 bytes
1m => 1000000 bytes
1mb => 1024*1024 bytes
1g => 1000000000 bytes
1gb => 1024*1024*1024 bytes
2.最基础(最小)的必配配置建议
port 6380                            配置server端运行的端口号
daemonize yes                        以守护进程方式运行redis,要求启动redis-server的时候必须指定配置文件            
pidfile /var/run/redis_6380.pid        指定pid文件的位置
logfile "/usr/local/redis/6380.log"    日志文件的位置
bind 127.0.0.1                        允许指定客户端IP访问server,如果注销那么任何IP都可以访问
dir /usr/local/redis                指定持久化文件存放的位置,默认./,如果选择默认值那么在哪个目录启动redis-server持久化文件就生成到那个目录
dbfilename 6380.rdb                    指定持久化文件的名称,默认名称dump.rdb。
appendfilename "6379.aof"    
备注:
1)这些项目强烈建议个性化设置,否则如果多个实例共存时可能会产生文件覆盖或找不到之前的rdb文件,给管理造成麻烦。
2)默认情况下持久化文件需要运行save或者重启server才会生成,否则看不到该文件。
3)如果没有目录需要手动创建目录,文件不需要手工创建。
4)部分机器需要去掉logfile中的双引号,否则启动redis时报找不到路径

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值