您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 投融资/租赁 > Redis培训@201703
机密信息,请勿扩散Redis培训廖小波2017-03-02机密信息,请勿扩散ContentsPage目录页1、Redis介绍2、Redis安装与配置3、Redis数据类型4、Redis命令5、注意点机密信息,请勿扩散3Redis介绍Redis是RemoteDictionaryServer的缩写,是一个内存中的key-value存储系统。Redis提供了一些丰富的数据结构,包括String,List,Set,OrderedSet及Hash.包括对这些数据结构的操作支持。Redis可以替代Memcached,解决了断电后数据完全丢失的问题。Redis的官方网站:机密信息,请勿扩散4Redis优点Redis性能高,支持每秒10w的读写频率有丰富的数据类型和操作Redis中的操作都是原子性的,Redis还支持对几个操作合并后的原子性执行,在一个事务中执行。Redis还支持发布/订阅模式Redis支持key过期的特性机密信息,请勿扩散5Redis应用场景减少对关系型数据库的读写,改到内存中执行相关操作作为二级缓冲,加快数据读取高并发访问,MYSQL无法支持机密信息,请勿扩散ContentsPage目录页1、Redis介绍2、Redis安装与配置3、Redis数据类型4、Redis命令5、注意点机密信息,请勿扩散7Linux下安装-11.下载最新版redis-3.2.0.tar.gz,放到工作目录/usr/local/work/redis解压缩tarzxvfredis-3.2.0.tar.gz形成目录redis-3.2.02.进入/usr/local/work/redis/redis-3.2.0/执行make出现make[1]:Leavingdirectory`/opt/redis-2.8.13/src'表示成功3.进入srccdsrc执行makeinstall机密信息,请勿扩散8Linux下安装-2出现1.Hint:Torun'maketest'isagoodidea;)2.3.INSTALLinstall4.INSTALLinstall5.INSTALLinstall6.INSTALLinstall7.INSTALLinstal表示编译成功,src下面会生成几个可执行文件。执行maketest如果报错,提示tcl未安装则执行yum–yinstalltcl执行maketest执行完毕后出现测试结果。机密信息,请勿扩散9Linux下安装-34.编写master的配置文件#cdredis-3.2.0viredis.conf里面的值port6379######表示master启动端口,默认为6379,不需修改将bind127.0.0.1注释掉。5.启动servercd/usr/local/work/redis/redis-3.2.0/src./redis-server../redis.conf--protected-modeno(没设置密码时默认开启保护模式,非本机无法访问,因此加上--protected-modeno)机密信息,请勿扩散ContentsPage目录页1、Redis介绍2、Redis安装与配置3、Redis数据类型4、Redis命令5、注意点机密信息,请勿扩散11Redis数据类型Redis常用数据类型有5种:1.String字符串2.Hash一个key,多个field3.List双向链表4.Set集合元素不重复5.Sortedset有序的集合机密信息,请勿扩散12Redis数据类型StringString常用命令:set,get,decr,incr,mget等应用场景:String是最常用的一种数据类型,普通的key/value存储实现方式:String在redis内部存储默认就是一个字符串,被redisobject所引用,当遇到incr,decr等操作时会转成数值型进行计算,此时redisObject的encoding字段为int机密信息,请勿扩散13Redis数据类型HashHash常用命令:hget,hset,hgetall等应用场景:比如我们存储基站在线时间时间,key为Uptime:smallCode,value为HashMap,uptime-14min20sec,isOnline-true实现方式:Hash对应value内部就是一个HashMap,实际这里有2种实现,这个Hash的成员较少时,redis为节省内存会采用类似一维数组的方式,而不会采用真正的Hashmap结构,对应的valueredisObject的encoding为zipmap,当成员数量增加时会自动转为真正的HashMap,此时encoding为ht。机密信息,请勿扩散14Redis数据类型ListList常用命令:lpush,rpush,lpop,rpop,lrang等应用场景:Redislist场景很多,是redis最重要的数据结构之一,比如OMC中存放待处理的查询参数命令,带下发的更新指令等。实现方式:List的实现为一个双向链表,可以支持正向,反向查找和遍历,redis内部很多实现,比如发送缓冲队列等也使用这个数据结构。机密信息,请勿扩散15Redis数据类型SetSet常用命令:sadd,spop,smembers,sunion等应用场景:Set对外提供的功能与list类似,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的接口exists,这是list所不能提供的。实现方式:Set的内部实现是一个value永远为null的HashMap,实际是通过计算hash值的方式来快速排除重复数据,这也是set能提供判断一个成员是否在集合内的原因。机密信息,请勿扩散16Redis数据类型SortedSetSortedSet常用命令:zadd,zrange,zrem,zcard等应用场景:Sortedset的使用场景与set类似,区别是set不是自动有序的,而sortedset可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且插入是有序的,即自动排序。当你需要一个有序的并且不重复的集合列表,那么可以选择sortedset数据结构。实现方式:Sortedset的内部使用HashMap和跳跃表SkipList来保证数据的储存和有序,HashMap存放的是成员到score的映射,跳跃表中存放的是所有的成员,排序依据是HashMap里存放的score,因此跳跃表有较高的查找效率。机密信息,请勿扩散17Redis数据过期设置Redis可以按key设置过期时间,过期后自动删除,此特性可用于存放一段时间内需要处理的信息,过期后自动作废。TTL命令可以获取某个key的过期时间,-1表示永不过期Exiprekey10机密信息,请勿扩散18Redis数据过期设置Redis可以按key设置过期时间,过期后自动删除,此特性可用于存放一段时间内需要处理的信息,过期后自动作废。TTL命令可以获取某个key的过期时间,-1表示永不过期Exiprekey10机密信息,请勿扩散ContentsPage目录页1、Redis介绍2、Redis安装与配置3、Redis数据类型4、Redis命令5、注意点机密信息,请勿扩散20Redis命令—配置命令有两种方式配置redis1是修改redis.conf2是通过redisconfig命令方式进入客户端命令模式:./redis-cli连接远程服务器redis-cli-hhost-pport-apassword如:redis-cli-h127.0.0.1-p6379-amypass127.0.0.1:6379configgetloglevel1)loglevel2)notice“configgetconfig_setting_nameConfigget*----得到所有配置命令Configsetsetting_namenewvalueConfigsetloglevel“debug”127.0.0.1:6379configgetloglevel1)loglevel2)debug机密信息,请勿扩散21Redis命令—键命令COMMANDkeyname127.0.0.1:6379sethelloredisOK127.0.0.1:6379gethelloredis“127.0.0.1:6379delhello(integer)1127.0.0.1:6379gethello(nil)机密信息,请勿扩散22Redis命令—字符串命令127.0.0.1:6379sethelloredisOK127.0.0.1:6379gethelloredis“机密信息,请勿扩散23Redis命令—HASH命令127.0.0.1:6379hmsetjackleelanguageenglishage28OK127.0.0.1:6379hgetalljacklee1)language2)english3)age4)28“127.0.0.1:6379hmgetjackleeage1)28机密信息,请勿扩散24Redis命令—Set命令redis127.0.0.1:6379SADDmysetredis(integer)1redis127.0.0.1:6379SADDmysetmongodb(integer)1redis127.0.0.1:6379SADDmysetmysql(integer)1redis127.0.0.1:6379SADDmysetmysql(integer)0redis127.0.0.1:6379SMEMBERSmyset1)mysql2)mongodb3)redis机密信息,请勿扩散25Java连接池访问redisJedisPoolpool=null;Jedisjedis=null;pool=newJedisPool(newJedisPoolConfig(),192.168.9.71,6379);jedis=pool.getResource();publicstaticvoidreturnResource(JedisPoolpool,Jedisredis){if(redis!=null){pool.returnResource(redis);}}机密信息,请勿扩散ContentsPage目录页1、Redis介绍2、Redis安装与配置3、Redis数据类型4、Redis命令5、注意点机密信息,请勿扩散27使用注意点配置redis最大使用内存限制,防止redis使用内存超过最大物理内存,造成宕机。在配置文件redis.conf中增加maxmemory4G需要使用连接池管理redis连接,否则高并发时,redis连接很快用完报错cannotgetaresource使用命令redis-cliinfo|grepmemory[root@/usr/local/redis-3.2.1/src]#./redis-cliinfo|grepmemoryused_memory:974904used_memory_human:952.05K----------------已使用内存used_memory_rss:8224768used_memory_rss_human:7.84Mused_memory_peak:1281760used_memory_peak_human:1.22Mtotal_system_memory:8226893824total_system_memory_human:7.66Gused_memory_lua:37888used_memory_lua_human:37.00Kmaxmemory:0maxmemory_human:0Bmaxmemory_policy:noeviction机密信息,请勿扩散赶上浪
本文标题:Redis培训@201703
链接地址:https://www.777doc.com/doc-3612636 .html