redis 已经成为日常开发仅次于mysql/orcal重要的缓存数据库了。所以我们必须得会!
一、安装
windows:redis工具以及demo: 密码:h1hr
解压后运行redis-server(不要关闭窗口)即可!不需配置配置文件!十分方便!
Linux(centos7环境):
安装redis:yum install -y redis.x86_64
启动redis客户端:redis-cli
修改配置文件:vi /etc/redis.conf
修改: daemonize yes // 允许后台运行
修改 :注释掉默认绑定的地址,bind 127.0.0.1
启动redis服务端:/usr/bin/redis-server /etc/redis.conf //这两个都是默认地址
jedis maven:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.2.1</version>
</dependency>
小编面试时候10次有10次被问到redis,大致问法有:redis是关系型还是非关系型的?有几种数据类型?rdb和aof分别是什么?redis事务?那么接下来小编将对平时日常工作使用比较多的和面试经验来介绍一下redis。
二、数据类型和基本命令
①基本key-value型:这种是最基本也是最常用的。命令有:set 插入、mset 批量插入、del 删除、get 获取、mget 批量获取、 setnx如果key不存在则插入
②map类型:hset 插入、hmset 批量插入、hget 获取、hmget 批量获取、hgetall 获取全部、hdel 删除、hlen 获取个数、hexists 判断元素是否存在、hkeys 获取map所有key、hvals 获取map所有value
③list类型:lpush 左压入、rpush 右压入、lpop 左弹出、rpop 右弹出、lrange 按范围取出list元素,lset、lrem 删除、llen 长度
④无序set类型:sadd、smembers(显示集合全部元素)、srem(删除)、spop(无序,随机弹出一个)、scard(元素个数)、sismember查是否存在一个指定元素、sinter返回交集、sdiff返回差集、sunion返回合集、move一个集合的一个元素移到另一个集合
⑤有序set类型:zadd、zrange(取出)、zrangebyscore、zrank(根据值返回游标)、zscore(根据值取出score )、zrem、zremrangebyscore、zremrangebyrank、zcount(根据score获取范围内元素个数 )、zcard
三、java操作redis
redis属于nosql,这个要先提一下。java要操作redis可以使用jedis包。而jedis所有方法,基本上都和redis命令一样,所以只要会了以上的命令jedis就没问题了。
废话不多说,直接上代码,所有操作都已经写在代码的注释里了。
四、面试聊redis
①redis是属于nosql的 非关系型数据库
②什么场景下用?答:频繁查询,或者临时数据,分布式数据一致时候用到。如排行榜等。
③rdb和aof区别:都是备份手段,但是rdb是粗粒度可能会造成数据丢失;aof是日志型保存,文件较大,需要手动开启。
尾言:redis还有发布与订阅功能,小编用这个功能写了一个在线聊天demo,有想要的朋友可以留言我要。这个demo我还用websocket实现,有兴趣朋友可以一起讨论。
IT是一条艰苦的路,让我们一起努力,坚信代码可以带给我们想要的生活!