Redis
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。
Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。
基本命令
1. 连接本地服务
- redis-cli
- redis-cli --raw (解决中文乱码)
- redis
2. 连接远程服务
(主机为 127.0.0.1,端口为 6379,密码为 mypass )
- redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
3. 查看所有key
-
keys pattern
- keys key
- keys key_*
4. key是否存在
- exist key
5. 查看key的类型
- type key
6. 删除key
- del key
字符串String
key和value都是字符串形式,一对一
增、改
-
设置指定key的值
- set key value
-
设置多个key的键值对
- mset key1 value1 key2 value2...
查
-
获取指定key的值
- get key
-
获取多个key的值
- mget key1 key2 ...
哈希Hash
key - field - value 映射表的关系
举例 : key 是user
字段名不可以重复
field value
name zhangsan
sex 男
age 18
hash 用来存储对象
增、改
-
设置key下指定字段的值
- hset key field value
查
-
获取key下指定字段的值
- hget key field
-
获取key下所有字段
- hkeys key
-
获取key下所有字段和值
- hgetall key
-
key下指定字段是否存在
- hexists key field
删
-
删除key下的字段
- hdel key field
列表List
列表是字符串列表,key属于字符串
value 是一个列表,存储多个字符串,可以在头部插入,尾部插入,中间插入;可以有重复的值
例:key是user
value 是 name age sex 是一个列表,里边有索引从0开始,分别是0,1,2
增、改
-
设置key下指定索引的值
- lset key index value
-
在列表头部添加值
- lpush key value
-
在列表尾部添加值
- rpush key value
-
在列表中指定列表值前插入值
- linsert key before 指定列表值 value
-
在列表中指定列表值后插入值
- linsert key after 指定列表值 value
查
-
获取key下指定索引下的列表值
- lindex key index
-
获取key下所有列表值
- lrange key 0 -1
删
-
移除列表元素值
-
lrem key count value
- count = 0 ——> 删除所有值
- count > 0 ——> 从头到尾删除该值
- count < 0 ——> 从尾到头删除该值
-
集合Set
Set是 String 类型的无序集合
表示 value 存储多个字符串元素,而且没有顺序,并且没有重复的数据
例:key是user
value 是 name age sex 各个元素,里边没有索引,且不能重复
增
-
集合增加成员
- sadd key member
查
-
获取集合下的所有成员
- smembers key
删
-
删除集合下指定成员
- srem key member
有序集合Zset
Zset是 String 类型的有序集合
表示 value 存储多个字符串元素,和无序集合不同的是每个元素有自己的分数,然后按照分数排序
所以元素数据不能重复,但是元素下的分数可以重复
例:key是user
value 是 name age sex 各个元素,没有元素有自己的分数
如:name 1 age 4 sex 8
增、改
-
有序集合增加成员
- zadd key score member
-
根据指定成员修改分数
- zadd key score member
查
-
获取集合下的所有成员
- zrange key 0 -1
-
获取集合下的所有成员及分数
- zrange key 0 -1 withscores
-
获取集合下的指定成员的分数值
- zscore key member
删
-
删除集合下指定成员
- zrem key member