redis是什么:面试
安装redis
wget http://download.redis.io/releases/redis-5.0.4.tar.gztar xzf redis-5.0.4.tar.gzcd redis-5.0.4make复制代码
缺乏make包, 则须要经过 sudo apt-get install make 安装数据库
make报错 /bin/sh: cc: command not found 缺乏gcc包, 经过 sudo apt-get install gcc安全
若是报错 fatal error: jemalloc/jemalloc.h: No such file or directory 则使用 make MALLOC=libc 编译性能优化
可使用命令 make test 测试. 报错 You need tcl 8.5 or newer in order to run the Redis test 则须要安装tcl包.bash
安装方法以下:数据结构
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/ cd /usr/local/tcl8.6.1/unix/ sudo ./configure sudo make sudo make install复制代码
安装完成后运行 make test 命令成功。架构
个人同事们并发
启动命令分布式
配置文件中的 bind 用来绑定服务端的ip, 为了安全,默认不容许外网访问
默认保护模式 protect-mode=yes
多数据支持
默认支持16个数据库, databases=16 , 默认使用的是DB 0 . redis数据库不支持自定义名称, 且不能单独作受权, 各个数据库之间并不是彻底隔离. flushall 命令能够清空redis中全部的数据.
select 3 转到索引为3的数据库
使用命令
字符类型
key的最大存储为512M.
key的设计能够参看阿里的规范, 例如 业务名:表名:id
列表类型
散列类型
不支持数据类型嵌套, 好比hash中存储一个list.
hset key field valuehget key fieldhmset key field1 value1 field2 value2hmget key field1 field2hgetall keyhexists key fieldhincrybyhsetnxhdel key field复制代码
集合类型
和list相比, 不能有重复元素, 且是无序的
sadd key member...smembers keysdiff key1 key2sunion key1 key2复制代码
有序集合
zadd key score memberzrange key start stop withscores复制代码
能够用来作排名统计
请下命令
redis的事务
比较鸡肋, 不建议使用, 有时候不能回滚
multi 开启事务;
set get... 等操做为具体的事务操做
exec 提交事务
过时时间
expire key timeout 设置超时时间
ttl key 得到key过时时间
发布订阅
publish channel message
subscribe channel
分布式锁
可以使用 setnx 实现
感谢你耐心看完了文章…
关注做者,我会不按期在掘金分享Java,Spring,MyBatis,Redis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构,BATJ面试 等资料…