Redis有6大基本类型,分别是字符串(String)、列表(List)、集合(set)、哈希结构(hash)、有序集合(zset)和基数(HyperLogLog)
redis在线体验地址:http://try.redis.io/
字符串(String)
介绍:
字符串是Redis中最基本的数据类型,数据以二进制的形式存储于内存中,所以Redis的字符串可以是任何形式的数据,比如JPEG图像、序列化的Ruby对象等。
字符串最大可存储512MB的数据,但一般一个字符串容量过大,会直接影响存储和查询的效率。字符串有两种编码方式:raw和embstr,根据字符串长度自动选择使用哪一种编码,目前最新版的长度是44个字节,字符串长度小于等于44个字节,则使用embstr编码,大于44个字节则使用raw编码,两种编码方式这里就不作详解,有兴趣的可以谷歌一下。
创建缓存
-
创建一个缓存
-
命令格式:
set key value
set cc 'niubility' --- 创建一个key为cc,值为niubility的缓存
-
-
批量创建缓存
-
命令格式:
mset key value [key value ...]
mset cc1 1 cc2 2 cc3 3 --- 创建三个缓存,key:value分别为cc1:1, cc2:2, cc3:3
-
命令格式:
msetnx key value [key value ...]
msetnx cc1 11 cc2 22 cc5 5 cc6 6 --- 此命令只会将尚不存在的key值创建到缓存中,已经存在的key则忽略 * cc1、cc2已存在于缓存中,所以不会创建/更新成功,cc5、cc6不存在于缓存中,会创建
-
-
创建一个带过期时间的缓存
-
命令格式:
setex key time value
setex cc1 10 234 --- 设置key:value为cc1:234且过期时间为10秒的缓存
-
-
设置一个不存在key的value,若key已存在则不设置
-
命令格式:
setnx key value
setnx cc5 12 --- 若cc5的key不存在于缓存中,则创建key:value为cc5:12的缓存,否则不执行创建
-
-
组合创建一个缓存(缓存过期时间、是否覆盖)
-
命令格式:
set key value [EX|PX time] [NX|XX]
解析:
EX:表明过期时间为秒 PX:表明过期时间为毫秒 NX:若key不存在则执行,否则不执行,与XX相反 XX:若key存在则执行,否则不执行,与NX相反
set cc1 123 EX 20 XX --- 若cc1已存在则创建过期时间为20秒的key:value = cc1:123
-
- 将key设置为新值的同时返回原值
-
命令格式:
getset key value
getset cc1 1 --- 若key不存在,则返回nil
读取缓存
-
读取一个key的缓存值
-
命令格式:
get key
get cc1 --- 读取key=cc1的值
-
-
批量读取一批数据
-
命令格式:
mget key [key ...]
mget cc1 cc2 cc3
-
-
截取字符串并返回
-
命令格式:
getrange key start end
getrange cc1 1 12 --- 字符串下标以0开始,若start超出字符串长度或key不存在,则返回空字符串
-
其他操作
-
将value加1( value必须为整数 )[ 可用于阅读量、点赞数等简单统计类的功能应用 ]
-
命令格式:
incr key
incr cc1 --- 每次调用均对value进行+1操作
-
-
给value加上某个数( num必须为整数 )
-
命令格式:
incrby key num
incrby cc1 100 --- 给cc1的值加上100
-
-
给value加上某个浮点数
-
命令格式:
incrbyfloat key num
incrbyfloat cc1 0.2
-
-
给value减1
-
命令格式:
decr key
decr cc1 --- 每次调用均对value进行-1操作
-
-
给value减去某个数( num必须为整数 )
-
命令格式:
descby key num
decrby cc1 100 --- 给cc1的值减去100
-
-
查看value的长度
-
命令格式:
strlen key
strlen cc1
-
目前先整理这些,都是一些基础的命令,随后再写一篇Java中使用Jedis操作字符串的随笔。
![](https://i-blog.csdnimg.cn/blog_migrate/2fdb2aaa6e2efa993a40db9f1ca7d558.jpeg)
欢迎关注我的个人微信公众号,公众号中每天发布最新的技术博文