您好,欢迎访问三七文档
redis是什么:Redisisanopensource,BSDlicensed,advancedkey-valuestore.Itisoftenreferredtoasadatastructureserversincekeyscancontainstrings,hashes,lists,setsandsortedsets.redis是开源,BSD许可,高级的key-value存储系统.可以用来存储字符串,哈希结构,链表,集合,因此,常用来提供数据结构服务.redis和memcached相比,的独特之处:1:redis可以用来做存储(storge),而memccached是用来做缓存(cache)这个特点主要因为其有”持久化”的功能.2:存储的数据有”结构”,对于memcached来说,存储的数据,只有1种类型--”字符串”,而redis则可以存储字符串,链表,哈希结构,集合,有序集合.Redis下载安装1:官方站点:redis.io下载最新版或者最新stable版2:解压源码并进入目录3:不用configure4:直接make(如果是32位机器make32bit)注:易碰到的问题,时间错误.原因:源码是官方configure过的,但官方configure时,生成的文件有时间戳信息,Make只能发生在configure之后,如果你的虚拟机的时间不对,比如说是2012年解决:date-s‘yyyy-mm-ddhh:mm:ss’重写时间再clock-w写入cmos5:可选步骤:maketest测试编译情况(可能出现:needtcl8.4这种情况,yuminstalltcl)6:安装到指定的目录,比如/usr/local/redismakePREFIX=/usr/local/redisinstall注:PREFIX要大写7:makeinstall之后,得到如下几个文件redis-benchmark性能测试工具redis-check-aof日志文件检测工(比如断电造成日志损坏,可以检测并修复)redis-check-dump快照文件检测工具,效果类上redis-cli客户端redis-server服务端8:复制配置文件Cp/path/redis.conf/usr/local/redis9:启动与连接/path/to/redis/bin/redis-server./path/to/conf-file例:[root@localhostredis]#./bin/redis-server./redis.conf连接:用redis-cli#/path/to/redis/bin/redis-cli[-hlocalhost-p6379]10:让redis以后台进程的形式运行编辑conf配置文件,修改如下内容;daemonizeyesRedis对于key的操作命令delkey1key2...Keyn作用:删除1个或多个键返回值:不存在的key忽略掉,返回真正删除的key的数量renamekeynewkey作用:给key赋一个新的key名注:如果newkey已存在,则newkey的原值被覆盖renamenxkeynewkey作用:把key改名为newkey返回:发生修改返回1,未发生修改返回0注:nx--notexists,即,newkey不存在时,作改名动作movekeydbredis127.0.0.1:6379[1]select2OKredis127.0.0.1:6379[2]keys*(emptylistorset)redis127.0.0.1:6379[2]select0OKredis127.0.0.1:6379keys*1)name2)cc3)a4)bredis127.0.0.1:6379movecc2(integer)1redis127.0.0.1:6379select2OKredis127.0.0.1:6379[2]keys*1)ccredis127.0.0.1:6379[2]getcc3(注意:一个redis进程,打开了不止一个数据库,默认打开16个数据库,从0到15编号,如果想打开更多数据库,可以从配置文件修改)keyspattern查询相应的key在redis里,允许模糊查询key有3个通配符*,?,[]*:通配任意多个字符?:通配单个字符[]:通配括号内的某1个字符redis127.0.0.1:6379flushdbOKredis127.0.0.1:6379keys*(emptylistorset)redis127.0.0.1:6379msetone1two2three3four4OKredis127.0.0.1:6379keyso*1)oneredis127.0.0.1:6379key*o(error)ERRunknowncommand'key'redis127.0.0.1:6379keys*o1)tworedis127.0.0.1:6379keys???1)one2)tworedis127.0.0.1:6379keyson?1)oneredis127.0.0.1:6379setonsyesOKredis127.0.0.1:6379keyson[eaw]1)onerandomkey返回随机keyexistskey判断key是否存在,返回1/0typekey返回key存储的值的类型有string,link,set,orderset,hashttlkey作用:查询key的生命周期返回:秒数注:对于不存在的key或已过期的key/不过期的key,都返回-1Redis2.8中,对于不存在的key,返回-2expirekey整型值作用:设置key的生命周期,以秒为单位同理:pexpirekey毫秒数,设置生命周期pttlkey,以毫秒返回生命周期persistkey作用:把指定key置为永久有效Redis字符串类型的操作setkeyvalue[ex秒数]/[px毫秒数][nx]/[xx]如:seta1ex10,10秒有效Seta1px9000,9秒有效注:如果ex,px同时写,以后面的有效期为准如seta1ex100px9000,实际有效期是9000毫秒nx:表示key不存在时,执行操作xx:表示key存在时,执行操作msetmultiset,一次性设置多个键值例:msetkey1v1key2v2....getkey作用:获取key的值mgetkey1key2..keyn作用:获取多个key的值setrangekeyoffsetvalue作用:把字符串的offset偏移字节,改成valueredis127.0.0.1:6379setgreethelloOKredis127.0.0.1:6379setrangegreet2x(integer)5redis127.0.0.1:6379getgreethexlo注意:如果偏移量字符长度,该字符自动补0x00redis127.0.0.1:6379setrangegreet6!(integer)7redis127.0.0.1:6379getgreetheyyo\x00!appendkeyvalue作用:把value追加到key的原值上getrangekeystartstop作用:是获取字符串中[start,stop]范围的值注意:对于字符串的下标,左数从0开始,右数从-1开始redis127.0.0.1:6379settitle'chinese'OKredis127.0.0.1:6379getrangetitle03chinredis127.0.0.1:6379getrangetitle1-2hines注意:1:start=length,则返回空字符串2:stop=length,则截取至字符结尾3:如果start所处位置在stop右边,返回空字符串getsetkeynewvalue作用:获取并返回旧值,设置新值redis127.0.0.1:6379setcnt0OKredis127.0.0.1:6379getsetcnt10redis127.0.0.1:6379getsetcnt21incrkey作用:指定的key的值加1,并返回加1后的值注意:1:不存在的key当成0,再incr操作2:范围为64有符号incrbykeynumberredis127.0.0.1:6379incrbyage90(integer)92incrbyfloatkeyfloatnumberredis127.0.0.1:6379incrbyfloatage3.595.5decrkeyredis127.0.0.1:6379setage20OKredis127.0.0.1:6379decrage(integer)19decrbykeynumberredis127.0.0.1:6379decrbyage3(integer)16getbitkeyoffset作用:获取值的二进制表示,对应位上的值(从左,从0编号)redis127.0.0.1:6379setcharAOKredis127.0.0.1:6379getbitchar1(integer)1redis127.0.0.1:6379getbitchar2(integer)0redis127.0.0.1:6379getbitchar7(integer)1setbitkeyoffsetvalue设置offset对应二进制位上的值返回:该位上的旧值注意:1:如果offset过大,则会在中间填充0,2:offset最大大到多少3:offset最大2^32-1,可推出最大的的字符串为512Mbitopoperationdestkeykey1[key2...]对key1,key2..keyN作operation,并将结果保存到destkey上。operation可以是AND、OR、NOT、XORredis127.0.0.1:6379setbitlower70(integer)0redis127.0.0.1:6379setbitlower21(integer)0redis127.0.0.1:6379getlowerredis127.0.0.1:6379setcharQOKredis127.0.0.1:6379getcharQredis127.0.0.1:6379bitoporcharcharlower(integer)1redis127.0.0.1:6379getcharq注意:对于NOT操作,key不能多个link链表结构lpushkeyvalue作用:把值插入到链接头部rpopkey作用:返回并删除链表尾元素rpush,lpop:不解释lrangekeystartstop作用:返回链表中[start,stop]中的元素规律:左数从0开始,右数从-1开始lremkeycountvalue作用:从key链表中删除value值注:删除count的绝对值个value后结束Count0从表头删除Count0从表尾删除ltrimkeystartstop作用:剪切key对应的链接,切[start,stop]一段,并把该段重新赋给keylindexkeyindex作用:返回index索引上的值,如lindexkey2llenkey作用:计算链接表的元素个数redis127.0.0.1:6379llentask(integer)3redis127.0.0.1:6379linsertkeyafter|beforesearchvalue作用:在key链表中寻找’search’,并在search值之前|之后,.插入value注:一旦找到一个search后,命令就结束了,因此不会插入多个valuerpoplpushsourcedest作用:把source的尾部拿出,放在dest的头部,并返回该单元值场景:task+bak双链表完成安全队列Task列表bak列表业务逻辑:1:Rpoplpusht
本文标题:Redis笔记
链接地址:https://www.777doc.com/doc-4854373 .html