10 Redis
Posted _笑着回眸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10 Redis相关的知识,希望对你有一定的参考价值。
1 Redis介绍
1.1 Redis是什么?
● Redis(Remote Dictionary Server),即远程字典服务。key—value存储系统,是跨平台的非关系型数据库。
● Redis是一个开源的使用ANSI C语言编写、遵循BSD协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key—Value)存储数据库,并提供多种语言的API。
● Redis通常称为数据结构服务器,因为值(value)可以是如下八种数据类型:
- 字符串(String)、哈希(Hash)、列表(list)、集合(set)、有序集合(sorted set)、位图(Bitmaps)、HyperLogLog、地理空间(Geospatial)。
1.2 Redis的特点
① 速度快
② 基于键值对数据模型
③ 功能丰富
④ 简单稳定
⑤ 客户端语言多
⑥ 持久化
⑦ 高可用
1.3 Redis的使用场景
● 当作高性能的缓存
● 分布式锁
● 计数器
● 最新列表
● 排行榜
2 Redis的安装部署及简单的使用
2.1 安装部署
2.2 Redis的简单使用
2.2.1 Redis服务启动
说明 | 指令 |
启动redis服务(挂在前台) | bin/redis-server ./redis.conf |
改redis.conf文件(挂在后台) | daemonize yes |
用端口,查看redis服务 | netstat -nltp | grep 6379 |
ps命令,查看redis程序 | ps -ef | grep redis |
2.2.2 Redis服务停止
说明 | 指令 |
查看redis端口号 | nerstat -nltp | grep 6379 |
杀掉redis进程 | kill -9 端口号 |
客户端关闭 | shutdown |
2.2.3 Redis的客户端连接
说明 | 指令 |
连接redis服务 | bin/redis-cli -p 6379 |
-p参数可以指定连接端口,不带-p默认连接6379 | |
该bind参数(绑定到hadoop102映射地址) | bin hadoop102 |
连接redis服务 | bin/redis-cli -h hadoop102 -p 6379 |
2.2.4 Redis的路径配置
● 在redis根目录下,创建一个文件夹名为dataDir,并在配置文件中配置
[atguigu@hadoop102 redis]$ vim redis.conf
……
dir /opt/module/redis/dataDir
2.2.5 Redis的基本操作
在配置文件redis.conf中:databases 16
● 参数是16,当前Redis示例有16个数据库,
● dbid范围 [0,database-1]
1) 数据库相关操作
命令 | 说明 | 示例 |
select <dbid> | 切换数据库 | select 7 |
dbsize | 查看数据库中数据个数 | dbsize |
flushdb | 清空当前库 | flushdb |
flushall | 通杀全部库 | flushall |
注意:
不同的命令采用Integers类型返回值含义不同
● dbsize命令,属于Integers类型返回值
● INCR命令采用整型回复作为返回值,并没有特殊意义,仅仅是INCR的UNIX时间的增加数值
● EXISTS命令,将通过返回值为1表示true,0表示false
2) key相关操作
● Redis中的数据存储方式:键值对(Key—Value)
● key—字符串类型 value—支持多种数据类型
创建键值对
hadoop102:6379> set zs 18
OK
hadoop102:6379> set ls 19
OK
hadoop102:6379> set ww 20
OK
相关操作
表达式 | 描述 | 示例 |
key pattern | 查询key,*是全部,?是任意一个字符 | keys * / key w* |
type key | 查看key对应值的类型 | type zs |
exists key | 指定的key是否存在,0不存在,1存在 | exists ls |
del key | 删除指定的key,成功返回1,不成功返回01 | del ww |
randomkey | 随机返回一个key | randomkey |
expire key second | 为键值设置过期时间,单位:秒 | expire zs 20 |
ttl key | 查看key还有多久过期,-1永不过期,-2已过期 | ttl zs |
rename key newkey | 重命名key,若newkey已存在,值将会被覆盖 | rename ww lw |
renamenx key newkey | newkey存在,才能执行成功 | renamenx zz xx |
3 Redis 的数据类型
3.1 String(字符串)
介绍
● String是Redis最基本的类型,一个key对应一个value。
● String类型是二进制安全的。Redis的String可以包含任何数据。比如jpg图片或者序列化的对象。
● String类型的值最大能存储512MB。
基本操作
表达式 | 描述 | 示例 |
set key value | 将字符串value关联到key | set k1 v1 |
EX | 设置键值对,过期时间20秒 | set k1 v1 EX 20 |
PX | 设置键值对,过期时间20000毫秒 | set k2 v2 PX 20 |
ptt | 查看毫秒级,过期剩余时间 | pttl k2 |
NX | 键不存在时,设置键值 | set k1 v1 NX |
XX | 键存在时,设置键值 | set k2 v2 XX |
setex key seconds value | 设置带有过期时间的键值对 | setex k4 20 v4 |
setnx key value | key不存在时,可设置value | setnx k1 v11 |
setrange key offset value | 用新值复写,用偏移量开始 | setrange k1 3 abcde |
注意:原字符长度不够时“填零占位”——>"\\x00" | ||
mset [key value ... ] | 添加多个键值对 | mset k2 v2 k3 v3 |
mget key1 key2 ... | 同时获取多个键的值 | mget k1 k2 |
msetnx [key value ... ] | k1不存在,设置多对键值对,k1存在则失败 | msetnx k1 v1 k2 v1 k3 v3 |
get key | 返回key关联的字符串值 | get k1 |
getset key value | 对给定的key赋值,同时获取旧值 | getset k2 v22 |
getrange key start end | 返回子字符串,-1最后一个字符,-2倒数第2个 | getrange k4 0 -1 |
用””号将多个单词作为一个值存储 | ||
当指定的获取值域大于实际字符串的值域,超出的部分会自动忽略 | ||
incr key | 将key中存储的数字值+1 | incr k1 |
incrby key increment | 对key的值增加指定增量 | inctby k1 10 |
decr key | 将key中存储的数字值-1 | decr k2 |
decrby key decrement | 对key的值增加指定减量 | decrby k2 10 |
以上是关于10 Redis的主要内容,如果未能解决你的问题,请参考以下文章