Rdeis(一)
Redis
简介
优势:分布式;基于键值对;
传统关系处理:RDBMS;
Redis源码:https://github.com/redis/redis
Redis在线测试:https://try.redis.io
Redis命令:http://doc.redisfans.com
奇数为非稳定版本;偶数为稳定版本
Redis Functions 新特性
安装
安装步骤:
yum -y install gcc-c++
tar -xzvf XXXX -C /opt
make && makr install
默认安装 :/usr/local/bin
修改redis.conf
后端进程:
daemonize no --> daemonize yes
保护模式:
protected-mode yes --> protected-mode no
远程:
bind 127.0.0.1 -::1 注释
设置redis密码:
requirepass 111111
启动redis:
redis-server myredis/redis7.conf
查看端口号:
ps -ef|grep redis|grep -v grep
启动redis-cli:
redis-cli -a 密码 -p 6379(端口号 ,若不写则默认6379)
查看是否启动成功:
ping 命令
标准错误:
Warning: Using a password with ‘-a’ or ‘-u’ option on the command line interface may not be safe.
解决:redis-cli -a 密码 -p 6379 2>/dev/null(端口号 ,若不写则默认6379)
关闭Redis服务
单实例关闭:redis-cli -a 密码 shutdown
多实例关闭,指定端口关闭:redis-cli -p 6379 shutdown
DataType
string 类型:字符串类型(512MB);
list类型 :字符串列表,顺序排列,2^32-1个元素(不超过40亿);
Hash类型:string类型的filed和value的映射表,2^32-1个键值对(不超过40亿);
Set类型:无序集合,唯一的;通过hash表实现;
Zset类型(有序集合):string类型;每个元素会关联一个double类型的分数,成员唯一,但分数(score)可以重复;
GEO类型(地理位置):
HyperLogLOg(基数统计):基数统计的算法
bitmap(位图):
bitfiled(域图):比特位域
stream(流):用于消息队列
命令面板:中文:http://www.redis.cn/commands.html
英文:https://redis.io/commands
命令:
命令 | 含义 |
---|---|
set kye value | 创建k-v |
get key | 去除v |
keys * | 查看所有 |
EXISTS k1 | 判断是否存在 |
type key | 查看key类型 |
del key | 删除key |
unline key | 非阻塞删除 |
ttl key | 查看还有多久过期 -1永不过期 -2 已经超时 |
expire key 秒钟 | 设置key多久过期 |
move key dbindex | 将当前数据库key移动到指定db中 |
select dbindex | 切换库(0-15) |
dbsize | 查看当前数据库key数量 |
flushdb | 清空当前库 |
flushall | 清空所有库 |
string类型命令:
1 | SET key value [NX | XX] [GET] [EX 秒 | PX 毫秒 | |
EX
seconds — 设置指定的过期时间,以秒为单位。PX
milliseconds — 设置指定的过期时间,以毫秒为单位。EXAT
timestamp-seconds — 设置密钥过期的指定 Unix 时间,以秒为单位。PXAT
timestamp-milliseconds — 设置密钥过期的指定 Unix 时间,以毫秒为单位。NX
— 仅在密钥不存在时设置密钥。XX
— 仅在密钥已存在时才设置密钥。KEEPTTL
— 保留与密钥关联的生存时间。GET
— 返回存储在 key 中的旧字符串,如果 key 不存在则返回 nil。SET
如果存储在 key 中的值不是字符串,则返回错误并中止。
多个插入:
1 | mset k1 v1 k2 v2 |
获取指定区间值:
1 | #截取0-1 |
数值增减
1 | #递增 |
获取长度内容和追加
1 | strlen key |
分式锁
1 | setnx key value |
1 | getset |
list类型命令
1 | lpush list |
Hash常用命令
1 | HDEL key field1 [field2] |
set命令
1 | SADD key member1 [member2] |
zset基础命令
1 | ZINCRBY key increment member |