redis实战之基础,程序简单操作redis
redis程序客户端操作javajedismaven依赖dependencygroupIdredis。clientsgroupIdjedisartifactIdversion3。6。3versiondependency简单操作
第一个超简单的程序publicclassRedisOpt{publicstaticvoidmain(String〔〕args){JedisjedisnewJedis(127。0。0。1,6379);jedis。connect();字符串操作System。out。println(字符串操作);jedis。set(count,1);自增jedis。incr(count);System。out。println(jedis。get(count));setnx命令if(jedis。setnx(count,100)0){System。out。println(setnx:countjedis。get(count));}else{System。out。println(key:countredis中已经存在);}hashSystem。out。println(hash操作);jedis。hset(user,name,非鸽传书);jedis。hset(user,wish,每天进步一点点);jedis。hset(user,maxim,坚持是一种品格);jedis。hset(user,age,18);输出结果:{f1v1,f2v2}System。out。println(jedis。hgetAll(user));jedis。hincrBy(user,age,2);jedis。hsetnx(。。。)和字符串的setnx命令类似,System。out。println(afterincrjedis。hgetAll(user));setSystem。out。println(set操作);jedis。sadd(mafei,出城剿匪);jedis。sadd(mafei,公平);jedis。sadd(mafei,公平);jedis。sadd(mafei,还是公平);System。out。println(jedis。smembers(mafei));jedis。sadd(shiye,出城剿匪);jedis。sadd(shiye,吃着火锅);jedis。sadd(shiye,唱着歌);jedis。sadd(shiye,忽然被马匪给劫了);System。out。println(jedis。smembers(shiye));System。out。println(交集jedis。sinter(mafei,shiye));System。out。println(差集jedis。sdiff(mafei,shiye));System。out。println(并集jedis。sunion(mafei,shiye));zsetSystem。out。println(zset操作);jedis。zadd(meals,5,breakfast);jedis。zadd(meals,20,lunch);jedis。zadd(meals,18,supper);正序System。out。println(jedis。zrangeWithScores(meals,0,1));倒序System。out。println(jedis。zrevrangeWithScores(meals,0,1));listSystem。out。println(list操作);jedis。del(reqList);jedis。rpush(reqList,再次暗示:);jedis。rpush(reqList,点赞、);jedis。rpush(reqList,关注);jedis。del(please);jedis。rpush(please,连续暗示:);jedis。rpush(please,收藏、);jedis。rpush(please,评论);ListStringreqListjedis。lrange(reqList,0,1);reqList。forEach(sSystem。out。print(s));System。out。println();ListStringpleasejedis。lrange(please,0,1);please。forEach(sSystem。out。print(s));jedis。close();}}输出结果字符串操作2key:countredis中已经存在hash操作{name非鸽传书,wish每天进步一点点,maxim坚持是一种品格,age18}afterincr{name非鸽传书,wish每天进步一点点,maxim坚持是一种品格,age20}set操作〔吃着火锅,出城剿匪,忽然被马匪给劫了,还是公平,公平,唱着歌〕〔吃着火锅,出城剿匪,忽然被马匪给劫了,唱着歌〕交集〔吃着火锅,出城剿匪,忽然被马匪给劫了,唱着歌〕差集〔公平,还是公平〕并集〔吃着火锅,出城剿匪,忽然被马匪给劫了,还是公平,公平,唱着歌〕zset操作〔〔breakfast,5。0〕,〔supper,18。0〕,〔lunch,20。0〕〕〔〔lunch,20。0〕,〔supper,18。0〕,〔breakfast,5。0〕〕list操作再次暗示:点赞、关注连续暗示:收藏、评论
jedis连接池
redis其实也是数据库,仅使用jedis来处理的话需要频繁的创建和关闭链接,因此可以采用jedis连接池来创建链接。publicclassRedisJedisPool{publicstaticvoidmain(String〔〕args){连接池配置对象,包含了很多默认配置GenericObjectPoolConfigpoolConfignewGenericObjectPoolConfig();JedisPooljedisPoolnewJedisPool(poolConfig,127。0。0。1,6379);Jedisjedisnull;try{从连接池获取jedis对象jedisjedisPool。getResource();执行操作System。out。println(jedis。smembers(shiye));}catch(Exceptione){System。out。println(e。getMessage());}finally{如果使用JedisPool,那么close操作不是关闭连接,代表归还连接池if(jedis!null){jedis。close();}}}}输出结果:〔吃着火锅,出城剿匪,唱着歌,忽然被马匪给劫了〕SpringBoot集成Redis
只是简单的集成,具体使用需要优化的地方很多。
mavendependencygroupIdorg。springframework。bootgroupIdspringbootstarterdataredisartifactIdversion2。5。4versiondependency
配置文件(。property,yml自行转换)redisspring。redis。host127。0。0。1Redis服务器连接端口spring。redis。port6379Redis服务器连接密码(默认为空)spring。redis。password连接池最大连接数(使用负值表示没有限制)spring。redis。pool。maxactive8连接池最大阻塞等待时间(使用负值表示没有限制)spring。redis。pool。maxwait1连接池中的最大空闲连接spring。redis。pool。maxidle8连接池中的最小空闲连接spring。redis。pool。minidle0连接超时时间(毫秒)spring。redis。timeout30000
配置类ConfigurationpublicclassRedisCfg{Value({spring。redis。host})privateStringhost;Value({spring。redis。port})privateintport;Value({spring。redis。timeout})privateinttimeout;Value({spring。redis。password})privateStringpassword;Value({spring。redis。pool。maxactive})privateintmaxActive;Value({spring。redis。pool。maxwait})privateintmaxWait;Value({spring。redis。pool。maxidle})privateintmaxIdle;Value({spring。redis。pool。minidle})privateintminIdle;BeanpublicJedisConnectionFactoryredisConnectionFactory(){JedisConnectionFactoryfactorynewJedisConnectionFactory();factory。setHostName(host);factory。setPort(port);factory。setTimeout(timeout);设置连接超时时间factory。setPassword(password);factory。getPoolConfig()。setMaxIdle(maxIdle);factory。getPoolConfig()。setMinIdle(minIdle);factory。getPoolConfig()。setMaxTotal(maxActive);factory。getPoolConfig()。setMaxWaitMillis(maxWait);returnfactory;}BeanpublicRedisTemplateString,StringredisTemplate(RedisConnectionFactoryfactory){StringRedisTemplatetemplatenewStringRedisTemplate(factory);设置序列化工具,这样ReportBean不需要实现Serializable接口setSerializer(template);template。afterPropertiesSet();returntemplate;}privatevoidsetSerializer(StringRedisTemplatetemplate){Jackson2JsonRedisSerializerjackson2JsonRedisSerializernewJackson2JsonRedisSerializer(Object。class);ObjectMapperomnewObjectMapper();om。setVisibility(PropertyAccessor。ALL,JsonAutoDetect。Visibility。ANY);om。enableDefaultTyping(ObjectMapper。DefaultTyping。NONFINAL);jackson2JsonRedisSerializer。setObjectMapper(om);template。setValueSerializer(jackson2JsonRedisSerializer);}}
工具类ComponentpublicclassRedisUtils{AutowiredprivateRedisTemplateredisTemplate;写入缓存paramkeyparamvaluereturnpublicbooleanset(finalStringkey,Objectvalue){booleanresultfalse;try{redisTemplate。opsForValue()。set(key,value);resulttrue;}catch(Exceptione){System。out。println(exe);}returnresult;}写入缓存设置时效时间paramkeyparamvaluereturnpublicbooleanset(finalStringkey,Objectvalue,LongexpireTime,TimeUnittimeUnit){booleanresultfalse;try{redisTemplate。opsForValue()。set(key,value);redisTemplate。expire(key,expireTime,timeUnit);resulttrue;}catch(Exceptione){System。out。println(exe);}returnresult;}批量删除对应的valueparamkeyspublicvoidremove(finalString。。。keys){for(Stringkey:keys){remove(key);}}批量删除keyparampatternpublicvoidremovePattern(finalStringpattern){SetSerializablekeysredisTemplate。keys(pattern);if(keys。size()0){redisTemplate。delete(keys);}}删除对应的valueparamkeypublicvoidremove(finalStringkey){if(exists(key)){redisTemplate。delete(key);}}判断缓存中是否有对应的valueparamkeyreturnpublicbooleanexists(finalStringkey){returnredisTemplate。hasKey(key);}读取缓存paramkeyreturnpublicObjectget(finalStringkey){Objectresultnull;resultredisTemplate。opsForValue()。get(key);returnresult;}哈希添加paramkeyparamhashKeyparamvaluepublicvoidhmSet(Stringkey,ObjecthashKey,Objectvalue){redisTemplate。opsForHash()。put(key,hashKey,value);}哈希获取数据paramkeyparamhashKeyreturnpublicObjecthmGet(Stringkey,ObjecthashKey){returnredisTemplate。opsForHash()。get(key,hashKey);}列表添加paramkparamvpublicvoidlPush(Stringk,Objectv){redisTemplate。opsForList()。rightPush(k,v);}列表获取paramkparamlparaml1returnpublicListObjectlRange(Stringk,longl,longl1){returnredisTemplate。opsForList()。range(k,l,l1);}集合添加paramkeyparamvaluepublicvoidadd(Stringkey,Objectvalue){redisTemplate。opsForSet()。add(key,value);}集合获取paramkeyreturnpublicSetObjectsetMembers(Stringkey){returnredisTemplate。opsForSet()。members(key);}有序集合添加paramkeyparamvalueparamscourepublicvoidzAdd(Stringkey,Objectvalue,doublescoure){redisTemplate。opsForZSet()。add(key,value,scoure);}有序集合获取paramkeyparamscoureparamscoure1returnpublicSetObjectrangeByScore(Stringkey,doublescoure,doublescoure1){returnredisTemplate。opsForZSet()。rangeByScore(key,scoure,scoure1);}}
测试类RestControllerpublicclassRedisTestController{AutowiredprivateRedisUtilsredisUtils;GetMapping(testredisgetRedisCache{key})publicStringgetRedisCache(PathVariable(valuekey)Stringkey){returnredisUtils。get(key)。toString();}}
启动springboot访问localhost:8080testredisgetRedisCachecount结果如下:
python操作redis
版本:3。8
首先需要引入redis包pipinstallredisimportredishost是redis主机,需要redis服务端和客户端都启动redis默认端口是6379rredis。Redis(hostlocalhost,port6379,decoderesponsesTrue)r。smembers(shiye)print(r。smembers(shiye))print(pool)redis连接池poolredis。ConnectionPool(hostlocalhost,port6379,decoderesponsesTrue)rredis。Redis(connectionpoolpool)listr。lrange(reqList,0,1)print(list)输出{吃着火锅,忽然被马匪给劫了,出城剿匪,唱着歌}pool〔再次暗示:,点赞、,关注〕
封面图,侵权删(各位老爷,看在图的份上给个三连吧)
宋仲基曝不爱干净男人不爱干净更有魅力台湾大学综合体育馆举行的宋仲基粉丝见面会。被问到有没有洁癖?有男神之称的宋仲基向粉丝坦言,他其实不太爱干净。他说,他的好友李光洙很爱干净,ldquo;但我觉得太爱干净的男人没有……
fate观看顺序fate动漫简介及主要人物动漫有着自己的受众群,年轻一代的朋友、上班族中有很多人喜欢看动漫,B站就是靠着动漫起来的,现在动漫还是B站的主要业务之一。日本动漫的发展比中国好很多,中国动漫迷们对日本动漫的接……
迪马利亚在曼联的年薪皇马坚信迪马利亚不值800万年薪曼联成冤大头?皇马坚信迪马利亚不值800万年薪北京时间昨日,曼联俱乐部官方正式宣布,皇马球星迪马利亚以5970万英镑的转会费加盟曼联,双方将签订一份为期5年的长约。……
剧情最好的奥特曼奥特曼十大最经典的剧情奥特曼十大最经典的剧情:儿时的经典奥特曼,相信大多数90后都有看过吧。大家对自己看的奥特曼的剧集有多少印象呢?是否对当中的几集特别感动?小编特地去回顾了几集经典剧集,看的真是感……
忘不了农场什么时候播出,忘不了农场嘉宾忘不了农场说出来很多人不清楚,可忘不了农场综艺是什么时候播出,很多网友就想去了解一下有关的故事,看忘不了农场提早把相关的海报和先导片给观众呈现,好能熟悉大概形式,但有的网友就不……
美真人秀节目展现女巨人逆天大长腿(组图)美国旅游生活电视频道(TLC)即将播出真人秀节目《我的巨人生活)(MyGiantLife)第二季,向观众展现6位身高异于常人的美国女性的生活。其中新加入这一节目的卡特娅(……
小米耳机性价比真不行啊前几天买了个小米4单元耳机,原价999现在只要499,看评价都不错,觉得小米性价比蛮高的。就买了一个玩玩,结果试了一会,失望无比啊。低音差,高音刺耳,听女毒还可以,听摇滚或者电……
H罩杯日本女神涉谷由里火爆自拍窜红网络(图)日本写真女星涉谷由里(渋谷)拥有天然H罩杯的好身材,近日以一系列乳摇自拍影片在网络爆红,甚至获得媒体关注与报导,人气不断飙升。别名:汉语妹年龄:25(属蛇)生……
先是刷屏后要上市,网易云音乐要开始第二程了?文林不二子网易云音乐又高调了起来。5月26日上午,网易云音乐的人格主导色测试H5让整个朋友圈五颜六色,紧接同一天下午着就传出了网易在港交所递交网易云音乐上市申请表的……
卡戴珊街拍跌破尺度卡戴珊穿透视装上围傲人卡戴珊街拍跌破尺度:卡戴珊穿透视装上围傲人马里布,当地时间5月27日,金middot;卡戴珊(KhloeKardashian)带女儿ldquo;小西北rdquo;出席Sc……
七夕送什么样的礼物最受欢迎,小巧可爱的蓝牙耳机你的她一定喜欢马上就是一年一度的七夕情人节了哦。盆友们除了计划在哪过,怎么过之外,是不是还在考虑该送给自己的那个心仪的她他什么礼物好呢。往年送得最多的估计就是鲜花、口红、还有包包了吧,其实除……
青春有你2主题曲公布了YES!OK!主题曲歌词介绍近日,爱奇艺再次推出的选秀节目《青春有你2》正在热播当中,随着比赛的进行,《青春有你2》主题曲终于公布出来,歌名叫做《YES!OK!》,很多音乐平台都能够听到了,一起来看一下《……
从前有座灵剑山杀青高雨儿发长文感谢相遇星关系1月8日讯近日,由腾讯影业、恒星引力、ABB联合出品,史上最反套路的古装热血青春剧《从前有座灵剑山》在横店杀青,该剧将由导演于中中执导,演员许凯、张榕容、高雨儿等主演。作……
七月与安生热播沈月陈都灵开启职场成长新篇章星关系7月25日讯女性情感治愈话题剧《七月与安生》正在爱奇艺独家热播中,该剧根据庆山(安妮宝贝)同名小说改编,由沈月、陈都灵、熊梓淇、邹廷威领衔主演,梁靖康特别出演。在最新更新……
韩东君重返二十岁变忠犬男友少年身老头心反差萌十足由唐人影视出品,韩东君主演的轻喜剧《重返20岁》正在全网热播,剧中,韩东君饰演的牛文正是一个身子20岁,内心灵魂70岁的假青年,并且为了追回自己的老婆孟丽君,变身忠犬男友,其诙……
麦克风如何控制底噪?阜新声艺视听收音相关的技巧或经验其实讲也讲不完,但有些人买了极高级的收音设备,却连声音的基本常识都不足,昂贵设备真的加了分吗?常有人来说,他买了很厉害的麦,却发现噪音大,用过相同设备……
班铃儿上线追剧女孩罗秋韵首秀求生欲爆棚星关系6月6日讯由企鹅影视、海棠果影业出品,何泓姗、徐正溪、曹曦文、黎耀祥领衔主演,刘敏、罗秋韵联合主演的古装臻爱励志剧《凤弈》正在热播。该剧讲述了叶凝芝(何泓姗饰)和将军魏广……
今年爆火的鲨鱼裤,你该怎么挑才时髦好看又显瘦?女生太难了,腿比男生还粗!话说回来,听说最近鲨鱼裤特别火?这是什么裤子?难不成还能是鲨鱼皮做的?席卷整个时尚圈的它,幂幂、baby、娜扎都演绎流行热门,日常随便一穿……
如懿传收官蒋雪鸣热度爆表褪去蟒袍潮范十足星关系10月22日讯《如懿传》在热议中迎来大结局,如懿溘然长逝,卫嬿婉自食恶果,演员们富有层次的表演给广大观众带来了从视觉上升到内心的感触。青年演员蒋雪鸣饰演的进忠公公在下线当……
安冬演绎完美秘书在理想之城中见证演技成长近期,反映我国建筑行业发展现状的职业剧《理想之城》开播后热度持续走高,收视屡创佳绩,剧中除了对苏筱、夏明、赵显坤等主要角色进行了生动的描摹外,还通过细节塑造了众多血肉丰满的人物……
动物系恋人啊开播钟欣潼贺军翔婚后变脸动物系恋人啊》开播钟欣潼贺军翔婚后变脸昨日(3月29日),由钟欣潼、贺军翔、隋棠、张睿家、洪卓立、黄志玮、林予晞、侯昕炜鼎力加盟的清新婚恋剧《动物系恋人啊》迎来了搜狐视频……
动物系恋人啊今晚上线钟欣潼贺军翔陷婚恋危机《动物系恋人啊》今晚上线钟欣潼贺军翔陷婚恋危机今日,由钟欣潼、贺军翔、隋棠、张睿家、洪卓立、黄志玮、林予晞、侯昕炜鼎力加盟的清新婚恋剧《动物系恋人啊》发布倒影版开播海报,……
全新灵越5000加持!帮你避开尴尬四宗罪从我们普通人角度来看,笔记本电脑就是跟冰箱、洗衣机一样的生活日用品,是一个追求好用的耐久不易损耗产品。在这样的观念下,笔记本的生产力状况就成为最值得关注的点了。市面上的最新产品……
蒋龙全职高手杀青演绎话痨黄少天尽显皮皮龙本色星关系9月27日讯font9月27日,由十一月执导,杨洋、蒋龙等主演的电竞热血励志剧《全职高手》正式宣布杀青。电视剧《全职高手》讲述了电竞大神叶修在人生遭遇被迫清零之后,韬光养……