目录
一、Redis基本介绍
二、Redis的键(key)
三、Redis五种基本数据类型及其使用
1. Redis String
(1)介绍:
(2)常用命令
2.Redis List
(1)介绍
(2)常用命令
3.Redis Set
(1)介绍
(2)常用命令
4.Redis Hash
(1)介绍
(2)常用命令
(3)数据结构
5.Redis Zset(sorted set)
(1)简介
(2)常用命令
Redis所使用的端口是6379,默认16个数据库,类似数组下标从0开始,初始默认使用0号库
使用命令 select
dbsize查看当前数据库的key的数量,flushdb清空当前库,flushall通杀全部库
Redis在处理数据的时候采用了单线程+多路IO复用技术,其执行效率不亚于多线程(后面有时间单独写文章讲述)
多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)
Redis五种基本数据类型分别是:String(字符串)、List(列表)、Set(集合)、Hash(哈希)、Zset(有序集合)
redis常见数据类型操作命令: http://www.redis.cn/commands.html
- String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
- String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象。
- String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M
set
*NX:当数据库中key不存在时,可以将key-value添加数据库
*XX:当数据库中key存在时,可以将key-value添加数据库,与NX参数互斥
*EX:key的超时秒数
*PX:key的超时毫秒数,与EX互斥
get
append
strlen
setnx
incr
将 key 中储存的数字值增1
只能对数字值操作,如果为空,新增值为1
decr
将 key 中储存的数字值减1
只能对数字值操作,如果为空,新增值为-1
incrby / decrby
演示:
lpush/rpush
lpop/rpop
rpoplpush
lrange
lrange mylist 0 -1 0左边第一个,-1右边第一个,(0-1表示获取所有)
lindex
llen
linsert
lrem
lset
演示:
Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。
Redis的Set是string类型的无序集合。它底层其实是一个value为null的hash表,所以添加,删除,查找的复杂度都是O(1)。
sadd
smembers
sismember
scard
srem
spop
srandmember
smove value把集合中一个值从一个集合移动到另一个集合
sinter
sunion
sdiff
演示:
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
类似Java里面的Map
hset
hget
hmset
hexists
hkeys
hvals
hincrby
hsetnx
演示
Hash类型对应的数据结构是两种:ziplist(压缩列表),hashtable(哈希表)。当field-value长度较短且个数较少时,使用ziplist,否则使用hashtable。
Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。
不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了 。
因为元素是有序的, 所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。
访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表。
zadd
zrange
zrangebyscore key minmax [withscores] [limit offset count]返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。
zrevrangebyscore key maxmin [withscores] [limit offset count] 同上,改为从大到小排列。
zincrby
zrem
zcount
zrank
演示:
=====THE END=====
感谢阅读,仅作个人笔记使用