Redis是一个非关系型数据库,也是一个内存数据库(确切一点,可以把它看做内存数据结构服务器, 设计极其精简,如果说在mongo里面还能看到表的影子"集合(collection)",那么redis则是完全放弃了"表"结构,存储数据完全依赖于 五种类型的数据结构;
Redis存储数据 的 五种数据结构
1. 字符串string
2. 哈希hash
3. 列表list
4. 集合set
5. 有序集合zset

1.基础类型string(最基本)
1.1增set
-
格式:
- set 键 值
-
示例:
set Apple iPhone
1.2删del
-
格式:
- del 键
-
示例:
del Apple
1.3改set
-
格式:
- set 键 值
-
示例:
set Apple iPad
1.4查get
-
格式:
- get 键
-
示例:
get Apple
1.5命令
-
创建键值对并设置过期时间
-
setex
-
格式:
- setex 键 失效时间(秒) 值
-
示例:
setex Canon 60 eos70D
-
-
-
同时设置多个键-->值
-
mset
-
格式:
- mset 键 值 键 值
-
-
-
同时获取多个键的值
-
mget
-
示例:
mset HHKB Professional2_types Amazon Kindle
-
-
-
同时删除多个键的值
-
del
-
格式:
- del 键 键
-
示例
del HHKB Amazon
-
-
2. 列表类型list
2.1 增
-
左侧添加
-
lpush
-
格式:
- lpush 键 值1 值2 值3 值4 值5 值6
-
示例:
lpush num 60 50 40 30 20 10
-
-
-
右侧添加
-
rpush
-
格式:
- rpush num 值1 值2 值3 值4
-
示例:
rpush num 70 80 90 100
-
-
-
在指定值的 前/后插入数据
-
前
-
格式:
- linsert key before 现有值 新值
-
示例:
linsert num before 20 15
-
-
后
-
格式:
- linsert key after 现有值 新值
-
示例:
linsert num after 20 25
-
-
2.2 删
-
lrem
-
格式:
- lrem key 0 需要删除的值(这里的0表示删除所有的值, -10 表示从后往前数,符合条件的前十个删除, +5 表示从前往后数, 符合条件的前5个删除)
-
示例:
lrem num 0 20
-
2.3 改
-
lset
-
格式:
- lset 旧值的索引 新的值
-
示例:
lset 1 14
-
2.4 查
-
lrange
-
格式:
- lrange 键 起始索引 终止索引
-
示例:
lrange num 0 -1
-
3. 无序集合类型set
3.1增sadd
-
格式:
- sadd 键 值 值 值
-
示例:
sadd Apple Mac iPhone iPod
3.2删srem
(删除集合中某一个元素的值)
-
格式:
- srem 键 值
-
示例:
srem Apple Mac
3.3查smembers
-
格式:
- smembers 集合的键 集合中的值
-
示例:
srem Apple Mac
4.有序集合类型zset
4.1增zadd
-
格式:
- zadd 键 权重1 值1 权重2 值2 权重3 值3
-
示例:
zadd Apple 15000 Mac 7000 iPhone 300 iPod
4.2删zrem
-
格式:
- zrem 键 值
-
示例:
zrem Apple Mac
4.3查
-
zrange
(按照索引范围取值)-
格式:
- zrange 键 起始索引值 终止索引值
-
示例:
zrange Apple 0 -1
-
-
zrangebyscore
(按照权重范围取值)-
格式:
- zrangebyscore 键 较小的权重 较大的权值
-
示例:
zrangebyscore Apple 2000 8000
-
5. 对象类型hash(相当于一个小的redis数据库)
5.1增hset
-
格式:
- hset 键 属性1的名称 属性1的值 属性2的名称 属性2的值 属性3的名称 属性3的值
-
示例:
hset Phone name iPhone prize 7999 color blank
5.2删hdel
-
格式:
- hdel 键 属性1
-
示例:
hdel Phone prize
5.3改hset
-
格式:
- hset 键 属性1的名称 属性1的新值
-
示例:
hset Phone name vivo
5.4查
-
hkeys
(获取所有属性的值)-
格式:
- hkeys 键
-
示例:
hkeys Phone
-
-
hget
(获取单个属性的值)-
格式:
- hget 键 属性名
-
示例:
hget Phone name
-
附录:键命令
(常用)查看所有键
- keys *
根据键中关键字,如查找相关键(包含"zhao"的)
- keys "zhao"
查看键对应类型
- type 键名
设置过期时间
- expire 键名
查看有效时间
- ttl 键名
删除关联外层类型的键
- del 键名

网友评论