这篇文章主要介绍了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、取交集、并集、差集、排序。
redismysql
同时也会将数据写到硬盘上。所以数据是安全的(除突然断电外,重启服务会写到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
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如何安装使用”这篇文章对大家有帮助,同时也希望大家多多支持百云,关注百云行业资讯频道,更多相关知识等着你来学习!
相关推荐: ORA-00911: 无效字符问题案例以及解决方法
ORA-00911: 无效字符问题案例以及解决方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!1、原本免费云主机域名java插入数据库表数据写法是这样的2、调用的baseDa…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。