1.redis单机搭建
redis单机版搭建十分简单,因为redis是C语言写的因此它要依赖gcc环境,
在linux上使用命令查看环境
gcc -v
如果没有gcc环境可在线安装
yum install gcc
至此基础环境已经做完 开始搭建
1)官网下载redis安装包 redis官网
2)放到linux指定目录下并解压 目录如下
3)进入redis-5.0.5目录 执行 命令
make & make install
4)编译完成后 在src目录下可以看到 redis-server 可执行文件
执行该文件便可以启动redis实例
单机版的redis安装完成
2.redis常用数据结构 与命令
redis命令可查看官网 redis命令中文网
下面会列举一些常用的命令
redis常用五大数据结构
1)String 字符串
set name shilei 设置一个key
get name 获取key 的值
append name 1 在key 为name 的value后面追加字符串1
exists name 判断name
move name 1 将key为name 的值 移动到第二个数据库 单机状态下使用
type name 查看key为name 的数据类型
expire name 10 设置key为name
incr key value增加1 必须value是数字 原子操作可作为分布式锁
decr key value减1 必须value是数字 原子操作可作为分布式锁
incrby key n 同上 数字增加n
decrby key n 同上 数字减少n
setex key n value 设置key可以存活n秒
setnx key value 没有key的情况下写入redis 有key写不进去
mset key value key value 。。。批量写入redis
mget key key key 。。。 批量获取key
msetnx key value key value 。。。 没有key的情况下写入redis 有key写不进去 有一个key已存在全体失败
集群状态下做批量操作需包装这些key对应的槽位是在同一台redis机器上
2)hashes 散列
可以对比与hashMap
Map user = new HashMap<>();
user.put("id","1");
hset user id 1 将user对象中id属性设置为1
hget user id 获取user对象中id属性
hmset customer id 11 name shilei age 26 同时设置customer对象中id name age 属性
hmget customer id name age 同时获取
hgetall customer 获取 所有属性和值
hdel user name 删除user对象中name属性和值
hlen user user 对象中几个属性
hexists user id 判断user对象中是否有id属性
hkeys user 获取user对象中所有属性
hvals user 获取user对象中所有属性的值
hincrby user age 2 对user对象的age属性的值加2
hincrbyfloat user score 0.5 对user对象的score属性的值增加一个float值
hsetnx user age 25 不存在则写入 同setnx
3)lists 列表
类比与ArrayList理解
List list = new Array
lpush list 1 2 3 写入list 3 在栈顶
rpush list 1 2 3 写入list 1 在栈顶
lpop list 删除list中元素 栈顶先出
rpop list 删除list中元素 栈底先出
blpop list 删除list中元素 栈顶先出 没有就阻塞 可以设置阻塞时间
brpop list 删除list中元素 栈底先出 没有就阻塞 可以设置阻塞时间
4)sets 集合
sadd set value value 。。。。 在set集合中添加值 会过滤重复的值
smembers set 获取set 中所有元素
spop set 在set元素中随机一个出栈
smove set01 set02 m 将set01中的m值移动到set02中
sdiff set01 set02 在set01里面不在set02里面 差集
sinter set01 set02 同时在set01和set02里面 交集
sunion set01 set02 在set01和set02里面所有的值 过滤重复的 并集
5)sorted sets 有序集合
zadd zset01 60 v1 70 v2 增加一个有序set
zcard zset01 获取一个排序的集合的成员数量
zrange zset01 0 -1
zrange zset01 0 -1 withsorces
zrangebyscore zset01 60 90 查看集合中分数大于等于60 小于等于90
zrangebyscore zset01 (60 90
zrangebyscore zset01 60 (90
zrangebyscore zset01 (60 (90
其他常用命令
keys:全量遍历键,用来列出所有满足特定正则字符串规则的key,当redis数据量比较大时,性能比较差,要避免使用
scan:渐进式遍历键,scan 参数提供了三个参数,第一个是 cursor 整数值,第二个是 key 的正则模式,第三个是遍历的 limit hint。第一次遍历时,cursor 值为 0,然后将返回结果中第一个整数值作为下一次遍历的 cursor。一直遍历到返回的 cursor 值为 0 时结束。 scan 0 match name* count 1000
Info:查看redis服务运行信息,分为 9 大块,每个块都有非常多的参数,这 9 个块分别是:
Server 服务器运行的环境参数
Clients 客户端相关信息
Memory 服务器运行内存统计数据
Persistence 持久化信息
Stats 通用统计数据
Replication 主从复制相关信息
CPU CPU 使用情况
Cluster 集群信息
KeySpace 键值对统计数量信息