Redis
Redis 特点
启动服务
关闭服务
Redis 客户端
-
不需要账号密码就能连接,只需要给出 IP 和端口
-
作用
-
指定 redis 端口
redis-cli -p 6380
-
连接指定机器上的 redis 服务
redis-cli -h ip -p port
关闭客户端
exit
或
quit
Redis 基本知识
基本知识-1
-
redis-benchmark
-
查看 redis 服务是否正常开启
ping
正常的话会返回 pong
-
查看全部
info
查看指定信息
info [信息段]
查看集群信息
info Replication
基本知识-3
-
切换数据库
select databaseIndex
基本知识-3
-
dbsize
-
查看当前数据库实例中所有的 key
keys *
-
清空当前数据库实例
flushdb
-
清空所有的数据库实例
flushall
-
查看 Redis 中所有的配置信息
config get *
查看 Redis 的端口号
config get port
Redis 的五种数据结构
对 Redis 来说,所有的键都是字符串
-
String 字符串类型
String类型是二进制安全的,意思是 redis 的 string 可以包含任何数据。如数字,字符串,jpg图片或者序列化的对象。但最大是 512 m
-
Hash 哈希
是一个 HashMap,本身是键-值对结构
-
List 双端链表
是有序的,value 可重复,可以通过下标取出对应的 value 值,左右两边都能进行插入和删除数据
-
Set 集合
集合类型也是用来保存多个字符串的元素,但和列表不同的是集合中
-
Zset 有序集合
有序集合和集合有着必然的联系,保留了集合不能有重复成员的特性,区别是,有序集合中的元素是可以排序的,它给每个元素设置一个分数,作为排序的依据。
操作命令
都是针对 数据类型 来设计的
-
有关 key 的操作命令
查看 key
keys pattern
Pattern 可使用通配符
通配符:
通配符 描述 * 0 到多个字符 ? 单个字符 [] 选择[]内的一个字符,例如wo[or]d,匹配word,wood,但不匹配world,woord 查看以 k 开头的 key
keys k*
判断 key 在数据库中是否存在,存在回 1,不存在回 0
exists key
判断制定的多个 key 有多少个是存在的,返回值是存在的 key 的数量
exists k1 k2 k3
移动某个 key 到某个数据库中,这里 index 表示数据库编号
move k1 index
设置 key 的生存时间
expire key seconds
查看 key 的剩余生存时间
ttl key
如果没设置生存时间返回 -1 ,如果 key 不存在则返回 -2
查看 key 的数据类型
type k1
重命名 key
rename oldKey newKey
删除制定 key
del k1
del k1 k2 k3
-
关于 string 类型数据的操作命令
将 string 类型的数据设置到 redis 中,如果 key 已存在,则会把原来的 key 覆盖掉
set 键 值
get zsname
追加字符串,返回值是追加后字符串的长度
append key value
如果 key 不存在就会相当于 set
获取字符串数据的长度
strlen key
将字符串数值进行 +1 ,返回值是 +1 后的结果
incr key
如果 key 不存在,首先设置一个 key,值初始化为 0 ,然后进行 incr 运算,要求 key 所表示的 value 必须是数值,否则报错
同理,对字符串数值 -1
desc key
引申,将字符串数值进行 + offset
incrby key offset
同理进行 - offset 操作
descby key offset
获取字符串的子字符串,索引从 0 开始,闭区间
getrange key startIndex endindex
getrange zsname 0 -1
用 value 覆盖从下标为 startIndex 开始的字符串,返回更改后的字符串,能覆盖几个字符就覆盖几个字符
setrange key startIndex value
设置字符串同时,设置他的最大生命周期
setex key seconds value
安全设置 key,当以前 key 不存在时才会进行设置
setnx key value
批量将 string 类型的数据设置到 redis 中
mset key1 value1 key2 value2 key3 value3
批量从 redis 中获取 string 类型的数据,不存在时返回 nil
mget key1 key2 ley3
对应地有 msetnx
-
关于 list 的操作命令
特征:单 key - 多 value,事实上 value 的下标从 0 开始
一个 key 对应多个 value ,多个 value 之间有顺序,最左侧是表头,最右侧是表尾,但是每个元素的下标可以用负数来表示
使用情况:一个key 对于多个 value
将一个或多个值依次插入到列表的表头,类似链表的添加到表头,返回成功插入的个数
lpush key v1 v2 v3
lrange key startIndex endindex
注意,输出结果为 v2 v1
对应地,插入到表尾
rpush key v1 v2 v3
从指定列表中移除并返回表头元素
lpop key
获取指定列表中指定下标的元素
lindex key index
获取指定列表的长度
llen key
从指定列表移除并返回表尾元素
rpop key
根据 count 值移除指定列表中跟 value 相等的数据
lrem key count value
- 当 count > 0,从左侧移除 count 个与 value 相等的元素
- 当 count < 0,从右侧移除 count 个与 value 相等的元素
将 value 插入到列表中位于 pivot 元素之前或之后的位置
linsert key before/after pivot value
-
关于 set 类型的数据的操作命令
特点:单 key - 多无序 value
将一个或多个元素添加到指定的集合,如果元素已经存在则忽略,返回成功加入的元素个数
sadd key v1 v2 v3
获取指定集合的所有元素
smembers key
判断指定元素在指定集合中是否存在,存在回 1 ,不存在回 0
sismember key member
获取指定集合的长度
scard set01
移除指定集合中一个或多个元素。不存在的话回忽略,返回成功移除的元素个数
srem key member1 member2 member3
随机获取集合中一个或多个元素,如果 count > 0 则随机获取的元素不重复,如果 count < 0 则获取的元素可能重复
srandmember key [count]
spop key [count]
smove source dest member
sdiff key key [key...]
获取所有集合的交集
sinter set01 set02 [set03...]
获取所有指定集合中所有元素的大集合
sunion key key [key...]
-
关于 hash 类型的数据的操作命令
hash 类型数据:单 key : field-value
Redis 中的 hash 是一个 string 类型的 key 和 vaue 的映射表,这里的 value 是一系列的键值对,所以 hash 特别适合存储对象
hash 类型的数据的操作总的思想是通过 key 和 field 操作 value ,key 是数据标示,field 是域,value 是我们感兴趣的业务数据
将一个或者多个 fileld - value 对设置到哈希表中
hset key fild_1 value_1 [field_2 value_2 ...]
或。。。其实就看个人习惯
hmset key field_1 value_1 [field_2 value_2 ...]
获取指定哈希表中指定 field 的值
hget key field
批量获取指定哈希表的 field 的值
hmget key field_1 [field_2 ...]
获取指定哈希表中所有的 field 和 value
hgetall key
hdel key field_1 [field_2 ...]
获取指定哈希表中所有的 field 个数
hlen key
判断一个哈希表中是否存在某一个 field ,存在回 1 ,不存在回 0
hexists key field
获取指定哈希表中所有的 field 列表
hkeys key
获取指定哈希表中所有的 value 列表
hvals key
对指定哈希表中指定的 field 值进行加法运算
hincrby key field Int
对着指定哈希表中指定 field 值进行浮点数加法运算
hincrbyfloat key field float
将一个 field - value 对设置到哈希表中,当 key - field 已经存在时,则放弃设置;否则,设置
hsetnx key field_1 value_1
-
关于 zset 类型数据的操作命令
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。