Redis支持的5种主要数据类型
1. String:字符串类型
最基本的数据类型,可以存储任何类型的字符串,包括二进制数据,最大长度为512M
2. List:列表类型
链表结构,支持在头部和尾部添加元素,有序的存储数据
3. Hash:散列类型
可以存储多个键值对类型的数据
4. Set:集合类型
存储任何类型,元素之间无序且不重复
5. Sort Set有序集合类型
和set一样可以存储元素,但每个元素有一个分值,可以根据分值排序
字符串类型
常用命令和使用案例
1.设置key及值,过期时间可以使用秒或毫秒为单位
- set key value [ex seconds][px millisecods][nx | xx]
set first "hello world"
2.从偏移量开始复写key的特定位的值
- setrange key offset value
setrange first 6 "Redis"
3.统计字串长度
- strlen key
4.存在则追加,不存在则创建key及value,返回key长度
- append key value
5.返回key存储的字符串值,若key不存在则返回null,若key的值不是字符串,则返回错误
- get key
5.将key中的值减1,key不存在则先初始化为0,再减1
- decr test
6.将key中的值,减去decrement
- decrby count 20
7.返回字符串中的字符串,截取范围为start和end,负数偏移量表示从末尾开始计数,-1表示最后一个字符,-2表示倒数第二个字符
- getrange key start end
getrange first 0 4
8.将key的值加1,如果key不存在,则初始化为0后再加1,主要应用为计数器
- incr key
incr page
9.将key的值增加increment
- incrby key increment
incrby page 5
10.为key中所存储的值加上浮点数增量increment
- incrbyfloat key increment
incrbyfloat num 13.14
11.获取一个或多个key值,空格分隔,具有原子性,设置多个key及值,空格分开,具有原子性
- mget key [key...]
- mset key value [key value...]
列表类型
常用命令与使用案例
1.将一个或多个值value插入到列表key的表头
- lpush key value [value...]
lpush list a b c list不存在,则创建list
2.从开始位置读取key的值到stop结束
- lrange key start stop
lrange list 0 -1 从开始读到结束
lrange list 0 2 从0位开始读到2位为止
lrange list 0 -2 从开始读到倒数第2位为止
3.移除并返回列表头元素数据,key不存在则返回nil
- lpop key
> llen letter
4.返回列表中第index个值
- lindex key index
> lindex letter 0
"e"
> lindex letter 2
"C"
> lindex letter -1 //最后1个
"A"
> lindex letter -2 //倒数第2个
"B"
5.将key中index位置的值修改为value
- lset key index value
lset lsit 3 taaa
6.将value插入到key的末尾
- repush key value [value...]
rpush list3 a b c
7.将value插入到pivot之前
- linsert key before pivot value
linsert letter before c c1 值c前面插c1
8.将value插入到pivot之后
- linsert key after pivot value
linsert letter after c c2 值c后面插入c2
Hash类型
常用命令和使用案例
1. 将hash表中的filed值设置为value
- hset key filed value
>hset site google 'www.a.cn'
>hset site souhu 'www.f.com'
2.获取hash表中field的值
- hget key filed
>hget site google
3.同时给hash表中的多个field赋值
- hmget key field value [field value...]
>hmset site tarena www.t.cn jd www.j.com
4.返回hash表中所有field的值
- hmget key field [field]
>hmget site goole baidu
5. 返回表中所有field的名称
- hkeys key
>hkeys site
6.返回hash表中所有field的值
- hgetall key
>hgetall site
7.返回hash表中所有filed的值
- hvals key
hvals site
8.删除hash表中多个field的值,不存在则忽略
- hdel key field [field]
hdel site google baidu
无序集合
常用命令和使用案例
集合中每一个元素都是唯一的,且没有顺序
1.创建集合
- sadd mylike a b c
2.查看集合成员
- smembers mylike
3.判断元素是否在集合中
- sismember mylike c 输出0表示不存在,输出1表示存在
4.输出成员个数
- scard mylike
5.集合运算
交集
- sinter mylike helike
差集
- sdiff mylike helike
合集
- sunion mylike helike
6.随机获得集合中的元素
- srandmember helike 2 随机从集合helike中取出两个不同的元素
7.集合中随机弹出一个元素
- spop helike
有序集合
常用命令和使用案例
1.赋值与查看
- zadd scores 10 tom 11 jerry 1 dick 15 tim
- zrange scores 0 -1 查看所有列名
2.获取和删除
- zscore scores tom 获取值
- zrangebyscore scores 80 90 withscores 获取指定分数范围的元素
- zincrby scores 3 tom 增加某个元素的分数
- zcard scores 获取集合元素的个数
- zcount scores 80 90 获取指定分数范围内的元素个数
- zrank scores tom 获取tom的排名 升序排列 从0开始记数
- zrevrank scores tom 获取tom的paiming,降序排列 从0开始计数
- zrem scores tom 删除元素