这篇文章主要介绍了Redis如何安装使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、Redis基础部分:

1、redis介绍与安装比mysql快10倍以上

*****************redis适用场合****************

1.取最新N个数据的操作

2.排行榜应用,取TOPN操作

3.需要精确设定过期时间的应用

4.计数器应用

5.Uniq操作,获取某段时间所有数据排重值

6.实时系统,反垃圾系统7.Pub/Sub构建实时消息系统

7.Pub/Sub构建实时消息系统8.构建队列系统

9.缓存

=============================================

SET操作每秒钟110000次,GET操作每秒钟81000次,服务器配置如下:

Linux2.6,XeonX33202.5Ghz.

stackoverflow网站使用Redis做为缓存服务器。

同时也会将数据写到硬盘上。所以数据是安全的(除突然断电外,重启服务会写到dump.rdb文件中)

1.安装:

tarzxvfredis-2.6.9.tar.gz

cdredis-2.6.9

make

cdsrc&&makeinstall

2.移动配置文件位置(为了便于管理)

cd/usr/local/

mkdir-p/usr/local/redis/bin

mkdir-p/usr/local/redis/etc

mv/lamp/redis-2.6.9/redis.conf/usr/local/redis/etc

cd/lamp/redis-2.6.9/src

mvmkreleasehdr.shredis-benchmarkredis-check-aofredis-check-dumpredis-cliredis-server/usr/local/redis/bin

3.修改配置文件

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

一、将daemonizeno中no改为yes[yes指后台运行]

4.启动/随机启动:

cd/usr/local/redis/bin

./redis-server/usr/local/redis/etc/redis.conf#启动redis并指定配置文件。

#vi/etc/rc.local#设置随机启动。

/usr/local/redis/bin/redis-server/usr/local/redis/etc/redis.conf

5.查看是否启动成功

ps-ef|grepredis

netstat-tunpl|grep6379#查看端口是否占用。

6.进入客户端/退出

cd/usr/local/redis/bin

./redis-cli#进入

quit#退出

7.关闭redis

pkillredis-server#关闭

./redis-clishutdown#关闭

************************************Redis安全************************************

Redis的安全性???(由以下4种方式)

1.用ACL控制器安全性。

2.在redis.conf配置文件增加下面这一行配置,即可把redis绑定在单个接口上(但并不是只有接受这个网卡的数据)。

bind127.0.0.1

3.给redis加上较长密码(无需要记住)

4.在redis.conf配置启用认证功能。

5.SSL代理

6.禁用指定命令。

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

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开启appendonly模式

以下了解即可:

Appendfsync设置对appendonly.aof文件同步的频率

vm-enabled是否开启虚拟内存支持

vm-swap-file设置虚拟内存的交换文件路径

vm-max-memory设置redis使用的最大物理内存大小

vm-page-size设置虚拟内存的页大小

vm-pages设置交换文件的总的page数量

vm-max-threads设置VMIO同时使用的线程数量

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

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

Activerehashing重新hash

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

5种数据类型:字符串、哈希、链表、集合、有序集合。

支持:push/pop、add/remove、取交集、并集、差集、排序。

redis<===同步====>mysql

同时也会将数据写到硬盘上。所以数据是安全的(除突然断电外,重启服务会写到dump.rdb文件中)

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

selectnum#选择库,默认在0库,共16个库

authliweijie#授权用户所需密码(密码就是redis.conf中配置的密码)

flushdb#清空数据库。

String(字符串)类型:

setnamelijie#设置键name的值为lijie

getname#获取name的值。

keys*#查询所有的键。

setnxnameliweijie#如果键已存在则返回0,不更新,防止覆盖。

setexhaircolor10red#设置键的值的有效期为10秒。

setrangeemail6lampbre.com#替换键的值从第6个字符开始换为lampbre.com

msetname1李大伟name2李小伟#设置多个键的值。

msetnxname1张三name3李四#判断键是否存在,不存在则设置,否则不设置返回0

mgetname1name2name3#一次获取多个键的值。

getsetname1Tom#重新设置键的值,并返回旧的键值。

getrangeemail618#截取email键的值,从第6-18位间的字符。

incruid#每次自增1(如果key中uid不存在,则设置并从0开始,下同)

incrbyuid5#每次自增5

incrbyuid-5#每次自减5

decruid#每次自减1

decrbyuid5#每次自减5

appendname1@126.com#给name1的值,添加字符串@126.com

strlenname1#返回键name1的值的长度。

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

Hashes(哈希)类型:

hsetuser:001nameliweijie#哈希设置用户user:001的name键值为liweijie

hsetuser:001age21#同样,增加一个age键值为21

hsetnxuser:001age22#同上,但检测键是否存在。若不存在创建。

hmsetuser:002nameliweijie2age26sex1#同时设置多个键的值。

hgetuser:001name#哈希获取用户user:001的name键的值。

hgetuser:001age#同上。

hmgetuser:001nameagesex#获取多个指定的键的值。

hgetalluser:001#获取所有键的值。

hincrbyuser:001age-8#在指定键上加上给定的值。

hexistsuser:001sex#检测指定的键值是否存在。

hlenuser:001#返回指定哈希的键个数/字段个数。

hdeluser:001sex#删除指定(user:001)哈希的指定字段或是键值。

hkeysuser:003#返回哈希里所有字段或是键值。

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

Lists(链表)类型及操作(棧或队列):

lpushmylist"world"#从头部插入字符串

lpushmylist"hello"#同上

lrangemylist0-1#获取从0到最后一个如[1)"hello"2)"world"]

rpushmylist"jiejie"#在尾部插入

linsertmylistbefore"hello""thisislinsert"#指定插入位置(在hello之前插入)。

lsetmylist0"what"#设置修改指定下标的值。

lremmylist1"hello"#删除(1个)一个值为hello的元素。(n<0从尾部删除,n=0全部删除)

ltrimmylist12#保留表中下标为1/2的元素。

lpopmylist#弹出开头元素并返回。

rpopmylist#弹出尾部元素并返回。

rpoplpushmylistmylist2#从mylist尾部弹出插入到mylist2的头部。

lindexmylist0#获取表下标为0的元素值。

llenmylist#返回表元素个数(相当于count($arr))。

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

sets(集合)类型及操作(好友推荐、blog、tag功能):

smembersmyset#查看myset集合中所有元素值。

saddmyset"hello"#向mysets集合中添加一个值hello

sremmyset"hello"#删除myset集合中名称为hello的元素。

spopmyset#随机弹出并返回mysets中的一个元素。

sdiffmyset2myset3#返回myset2中的与myset3的差集(以myset2为准)。

sdiffstoremyset4myset2myset3#返回myset2中的与myset3的差集,并存入myset4中去。

sintermyset2myset3#返回myset2与myset3的交集。

sinterstoremyset5myset2myset3#返回myset2与myset3的交集,并存入myset5中去。

sunionmyset2myset3#求并集(去重复)

sunionstoremyset6myset2myset3#求并集,并存入myset6中去。

smovemyset2myset3"three"#将myset2中的three移到myset3中去。

scardmyset2#返回元素个数。

sismembermyset2"one"#判断元素one是不是myset2集合的(相当于is_array())。

srandmembermyset2#随机返回myset2集合中的一个元素,但不删除(相当于array_rand())。

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

sortedsets(有序集合)类型及操作(以scores排序):

zaddmyzset1"one"#向顺序1的添加元素one

zaddmyzset2"two"#同上。

zaddmyzset3"two"#相当于更新顺序为2的值

zrangemyzset0-1withscores#查看所有元素并带上排序(默认升序)。

zremmyzset"two"#删除two

zincrbymyzset2"two"#将two的顺序值加上2

zrankmyzset"two"#返回集合中元素的索引下标值。

zrevrankmyzsettwo#元素反转并返回新下标值。

zrevrangemyzset0-1withscores#按顺序反转(相当于降序排序)

zrangebyscoremyzset110withscores#返回顺序为1-10的元素(可做分页)。

zcountmyzset110#返回顺序在1-10之间元素的个数。

zcardmyzset#返回集合中所有元素的个数。

zremrangebyrankmyzset12#删除集合中下标为1到2的元素。

zremrangebyscoremyzset110#删除集合中顺序为1到10的元素。

Redis常用命令

键/值相关命令。

keys*#查询所有

keysuser*#查询指定的

existsuser:001#判断是否存在。

delname#删除指定的键。

expireaddr10#设置过期时间

ttladdr#查询过期时间

select0#选择数据库

moveage1#将age移到1数据库。

getage#获取

persistage#移除age的过期时间。

randomkey#随机返回一个key

renamename1name2#重命名键

typemyset#返回键的类型。

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

echolamp#输出一个lamp

select10#选择数据库。

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

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

服务器相关命令:

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

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

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

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

二、Redis高级部分:

1、Redis安全性:

1.用ACL控制器安全性。

2.给redis加上较长密码

#requirepassfoobared

requirepassbeijing

3.在redis.conf配置启用认证功能。

方式一:Authbeijing

方式二:./redis-cli-abeijing

4.在redis.conf配置文件增加下面这一行配置,即可把redis绑定在单个接口上(但并不是只有接受这个网卡的数据)。

bind127.0.0.1(单台机器的时候可以配置,分布式或主从复制时最好不要配置)

5.SSL代理

6.禁用指定命令。

2、Redis主从复制:

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

slaveof211.122.11.116379#指定master的ip和端口

masterauthbeijing#这是master主机的密码

Info#查看主/从服务器的状态。

3、Redis事务处理:

Redis事务很不完善。

4、Redis持久化机制:

1.两种方式:一、备份数据到磁盘(快照)[snapshotting(快照)也是默认方式]

二、记录操作命令[Append-onlyfile(缩写aof)的方式]

一、备份数据到磁盘(快照)[snapshotting(快照)也是默认方式]

save9001#900秒内如果超过1个key被修改,则发起快照保存

save30010#300秒内容如超过10个key被修改,则发起快照保存

save6010000

二、记录操作命令[Append-onlyfile(缩写aof)的方式](较安全持久化)

appendonlyyes#启用aof持久化方式

#appendfsyncalways//收到写命令就立即写入磁盘,最慢,但是保证完全的持久化

appendfsynceverysec//每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中

#appendfsyncno//完全依赖os,性能最好,持久化没保证

感谢你能够认真阅读完这篇文章,希望小编分享的“Redis如何安装使用”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!