redis是一个key-value存储系统.和Memca ched类似,它支持存储的value类型相对更多,包括stri ng(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型).
这些数据类型都支持pu sh/pop、add/remove及取交集并集和差集及更丰富的操作,而且这
些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memca ched一样,为
了保证效率,数据都是缓存在内存中.区别的是re dis会周期性的把更新的数据写入磁盘或
者把修改操作写入追加的记录文件,并且在此基础上实现了m aster-slave(主从)同步.
Redis的优点:
性能极高– Redis能支持超过100K+ 每秒的读写频率。
丰富的数据类型– Redis支持二进制案例的 String s, Lists, Hashes, Sets 及 Ordere d Sets 数据
类型操作。
原子–Redis的所有操作都是原子性的,同时Redi s还支持对几个操作全并后的原子性执行。
丰富的特性– Redis还支持 publis h/subscr ibe, 通知, key 过期等等特性。
下面是官方的bench-mark数据:
测试完成了50个并发执行100000个请求。
设置和获取的值是一个256字节字符串。
Linuxbox是运行Linux 2.6,这是X3320 Xeon 2.5 ghz。
文本执行使用loopb ack接口(127.0.0.1)。
结果:写的速度是110000次/s,读的速度是81000次/s 。
redis常用命令:
就DB来说,Redis成绩已经很惊人了,且不说mem cache db和to kyoca binet之流,就说原
版的m emcac hed,速度似乎也只能达到这个级别。Redis根本是使用内存存储,持久化的关键是这三条指令:SAVE BGSAVE LASTSA VE .
当接收到SA VE指令的时候,Redis就会dump数据到一个文件里面。值得一说的是它的独
家功能:存储列表和集合,这是它与mc之流相比更有竞争力的地方。
不介绍mc里面已经有的东东,只列出特殊的:
TYPE key —用来获取某k ey的类型
KEYS patter n —匹配所有符合模式的ke y,比如KEYS * 就列出所有的key了,当然,复
杂度O(n)
RANDOM KEY - 返回随机的一个key
RENAME oldkey newke y— key也可以改名
列表操作,精华
RPUSHkey string—将某个值加入到一个ke y列表头部
LPUSHkey string—将某个值加入到一个ke y列表末尾
LLEN key —列表长度
LRANGE key startend —返回列表中某个范围的值,相当于mys ql里面的分页查询那样LTRIMkey startend —只保留列表中某个范围的值
LINDEX key index—获取列表中特定索引号的值,要注意是O(n)复杂度
LSET key indexvalue—设置列表中某个位置的值
LPOP key
RPOP key —和上面的LP OP一样,就是类似栈或队列的那种取头取尾指令,可以当成消息队列来使用了
集合操作
SADD key member—增加元素
SREM key member—删除元素
SCARDkey —返回集合大小
SISMEM BER key member—判断某个值是否在集合中
SINTER key1 key2 ... keyN —获取多个集合的交集元素
SMEMBE RS key —列出集合的所有元素
还有Mult ipleDB的命令,可以更换db,数据可以隔离开,默认是存放在DB 0
redis安装方法:
可以在Win dows下进行安装
Redis安装文件解压后,有以下几个文件。见下图
redis-server.exe:服务程序
redis-check-:本地数据库检查
redis-check-:更新日志检查
redis-bench:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询(类似于 Apache的ab 工具).
linux安装redis服务在解压好re dis的安装文件到E:\根目录后,还需要在re dis根目录增加一个redis的配置文件redis.conf,文件具体内容附件中有,不过这里我仍然把配置文件的内容贴上来:
# Redisconfig urati on file exampl e
# By defaul t Redisdoes not run as a daemon. Use 'yes' if you need it.
# Note that Rediswill writea pid file in /var/run/redis.pid when daemon ized.
daemon ize no
# When run as a daemon, Rediswritea pid file in /var/run/redis.pid by defaul t.
# You can specif y a custom pid file locati on here.
pidfil e /var/run/redis.pid
# Accept connec tions on the specif ied port, defaul t is 6379
port 6379
# If you want you can bind a single interf ace, if the bind option is not
# specif ied all the interf aceswill listen for connec tions.
#
# bind 127.0.0.1
# Closethe connec tionaftera client is idle for N second s (0 to disabl e)
timeou t 300
# Set server verbos ity to 'debug'
# it can be one of:
# debug(a lot of inform ation, useful for develo pment/testin g)
# notice (modera telyverbos e, what you want in produc tionprobab ly)
# warnin g (only very import ant / critic al messag es are logged)
loglev el debug
# Specif y the log file name. Also 'stdout' can be used to force
# the demonto log on the standa rd output. Note that if you use standa rd
# output for loggin g but daemon ize, logs will be sent to /dev/null
logfil e stdout
# Set the number of databa ses. The defaul t databa se is DB 0, you can select
# a differ ent one on a per-connec tionbasisusingSELECT <dbid> where
# dbid is a number betwee n 0 and 'databa ses'-1
databa ses 16
>>>>>>## SNAPSH OTTIN G >>>>>>### #
# Save the DB on disk:
#
# save <second s> <change s>
#
# Will save the DB if both the givennumber of second s and the given
# number of writeoperat ionsagains t the DB occurr ed.
#
# In the exampl e belowthe behavi our will be to save:
# after900 sec (15 min) if at least1 key change d
# after300 sec (5 min) if at least10 keys change d
# after60 sec if at least10000keys change d
save 900 1
save 300 10
save 60 10000
# Compre ss string object s usingLZF when dump .rdb databa ses?
# For defaul t that's set to 'yes' as it's almost always a win.
# If you want to save some CPU in the saving childset it to 'no' but
# the datase t will likely be bigger if you have compre ssibl e values or keys.
rdbcom press ion yes
# The filena me whereto dump the DB
dbfile namedump.rdb
# For defaul t save/load DB in/from the workin g direct ory
# Note that you must specif y a direct ory not a file name.
dir ./
>>>>>>### REPLIC ATION >>>>>>###
# Master-Slavereplic ation. Use slaveo f to make a Redisinstan ce a copy of
# anothe r Redisserver. Note that the config urati on is localto the slave
# so for exampl e it is possib le to config ure the slaveto save the DB with a
# differ ent interv al, or to listen to anothe r port, and so on.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
linux安装redis及外网访问
« 上一篇
常用rides命令
下一篇 »
发表评论