目录
一、Redis基本知识与Redis键(key)常用操作命令。
二、Redis的五大值的数据类型。(value)
三、Redis关于键(key)的值常用操作指令表格统计。
(1)字符串(String)。
(2)列表。(List)
(3)哈希表(Hash)
(4)集合。(Set)
(5)有序集合。(ZSet)
一、Redis基本知识与Redis键(key)常用操作命令。
- redis的默认端口6379。mysql默认端口号3306。
默认16个数据库,类似数组的下标从0开始,初始默认使用0号库。可以使用select index来切换数据库,如:select 1,表示切换到第2个库。 统一密码管理,所有的库密码相同。
- Redis键(key)的相关操作命令。
二、Redis的五大值的数据类型。(value)
- redis字符串。(String)
- redis列表。(List)
- redis集合。(Set)
- redis哈希表。(Hash)
- redis有序集合(Zset)
三、Redis关于键(key)的值常用操作指令表格统计。
(1)字符串(String)。
- Redis值(字符串)常用命令的表格统计。
命令 基本介绍 set key value 添加键值对。若键存在,会覆盖原值。(简单设置字符串值) get key 获取键对应值。 setnx key value key不存在时,才会设置对应的key与value。 append key value 原有键的值后追加值。。 strlen key 获取字符串值的长度。 mset k1 v1 k2 v2 ... 同时设置多个key-value。 msetnx k1 v1 k2 v2 ... 原子性:当所有的key就不存在值时,则设置成功。 mget k1 k2... 同时获取多个key对应的value。 getrange key start end 获取值的范围。与Java的substring很像,提取指定范围的字符串。 setrange key start value 覆盖指定起始位置的值。 setex key 过期时间 value 设置键与过期时间与值。 getset key value 设置新值同时返回旧值。
- Redis值(字符串)关于数字值的递增、递减命令的表格统计。
命令 基本介绍 incr key 指定key的数字值的递增。如果key不存在,默认为1。 decr key 指定key的数字值的递减。如果key不存在,默认为-1。 incrby key +value 对指定key递增指定数值。如果key不存在,则在0基础上+递增的值。 decrby key -value 对指定的key递减指定数值。如果key不存在,则在0基础上-递增的值。
(2)列表。(List)
- Redis列表是简单的字符串列表。底层实际上是使用双向链表实现的。
- Redis值(列表)常用命令的表格统计。
命令 基本介绍 lpush k1 v1 k2 v2 ... 从左边插入一个或多个值 rpush k1 v1 k2 v2 ... 从右边插入一个或多个值 lrange key start stop 查询指定列表key的指定区间的元素。
正数下标:0第一个元素,负数下标:-1倒数1个元素,-2倒数第2个lprop key count 从左边弹出多个元素,count可以省略,默认值为1rprop key count 从右边弹出多个元素,count可以省略,默认值为1 rproplpush
source destination从一个列表右边弹出一个元素并放到另外一个列表中 lindex key index 查询指定索引位置的元素(从左到右) llen key 获取指定列表的长度 linsert key before|after
value newvalue 将值newvalue插入到列表key当中,位于值value之前或之后。value不存在列表中时,不执行任何操作lrem key count value 根据参数count的值,移除列表中与参数value相等的元素
若count>0,从表头开始搜索,移除与value相等的元素,数量为count若count<0,从表尾开始搜索,移除与value相等的元素,数量为count绝对值
若count=0,移除表中所有与 value 相等的值。lset key index value 将列表key的下标索引为index的元素的值设置为value。
(3)哈希表(Hash)
Redis hash是一个键值对集合。 Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 类似于java里面的Map<String,Object>。 Hash类型对应的数据结构是:ziplist(压缩列表),hashtable(哈希表)。当field-value长度较短个数较少时,使用ziplist,否则使用hashtable。
命令 基本介绍 hset key field value[field1 value1 field2 value2 ...]设置单个或多个field及value。
将哈希表key中的域field的值设为value 。hget key field 获取(查询)指定field的值value。 hgetall key 返回指定hash表的所有域field以及值value。 hexists key field 判断给定的域field是否存在。1:存在,0:不存在hkeys key 返回指定hash表的所有的域filed hvals key返回指定hash表的所有的值value hlen key 返回指定hash表的域filed数量 hincrby key field increment 给指定hash表的指定域filed的值加上指定的增量。增量也可以为负数,相当于对给指定域filed的值value进行减法操作。如果域filed对应的值value不是integer会错误提示。 hsetnx key field value 将哈希表key中的域field的值设置为value ,当且仅当域field不存在!
(4)集合。(Set)
- Redis Set与List类似,是一个列表的功能,特殊之处在于Set是可以自动排重的!当需要存储一个列表数据,又不希望出现重复数据时,Set是一个很好的选择。
- Redis的Set是String类型的无序集合,他的底层实际是一个value为null的Hash表,添加,删除,查找复杂度都是O(1)。
命令 基本介绍 sadd key value1 value2 ... 添加一个或多个元素。(会自动去重) smembers key 取出(查询)所有元素 sismember key value 判断集合key中是否包含元素value。其中1:有,0:没有scard key 返回集合中元素的个数 srem key member
[member1 member2 ...] 移除(删除)集合key中的一个或多个member元素。若不存在的member元素会被忽略执行。spop key [count] 随机弹出count个元素。count默认为1。
被弹出的元素会被删除,返回弹出元素值
srandmember key [count] 随机获取count个元素。count默认为1。
不会删除集合中的元素。smove source destination member member元素从集合source移除,并添加到destination 集合中。
若destination 集合中已有该元素,只进行source移除操作。 sinter key [key1 key2 ...] 取多个集合的交集 sinterstore 将多个集合的交集放到一个新的集合中 sunion key [key1 key2 ...] 取多个集合的并集,且自动去重 sunionstore 将多个集合的并集放到一个新的集合中 sdiff key [key1 key2 ...] 取多个集合的差集。返回一个集合的全部成员,该集合是所有给定集合之间的差集
(5)有序集合。(ZSet)
redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。 不同之处:有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分 到最高分的方式排序集合中的成员。 集合的成员是唯一的,但是评分是可以重复的。
- 因为元素是有序的,所以你可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。
访问有序集合中的中间元素也是非常快的,因为你能够使用有序集合作为一个没有重复成员你的智能列表。
命令 基本介绍 zadd key
<score1> <member1>
<score2> <member2> ... 1、将一个或多个member元素及其score值加入到有序集 key 当中。2、如果某个member已经是有序集的成员,那么更新这个member的score值,并重新插入这个member元素,来保证该member在正确的位置上。3、score 值可以是整数值或双精度浮点数。 zrange key start top [withscores]1、返回存储在有序集合key中的指定范围的元素。 返回的元素可以认为是按score从最低到最高排列,如果得分相同,将按字典排序。
2、下标参数start和stop都以0为底,则以0表示有序集第一个成员,以1表示有序集第二个成员。3、zrange key 0 -1:可以获取所有元素。
4、withscores:让member成员和它的 score 值一并返回
zrevrange keystart stop [withscores] score降序,获取指定索引范围的元素。可以使用负数下标,以-1表示最后一个成员, -2表示倒数第二个成员。 zrangebyscore key min max [withscores] [limit offset count] 1、返回有序集 key 中,所有score值介于min和max之间(包括等于min或max)的成员。有序集成员按score值递增(从小到大)次序排列。2、可选的limit参数指定返回结果的数量及区间。 zrevrangebyscore 按照score降序,返回指定score范围内的数据。 zincrby key increment member 为有序集key的成员member的score值加上增量 increment 。可以通过传递一个负数值increment ,让score减去相应的值。 zrem key member
[member1 member2 ...] 移除有序集key中的一个或多个成员,不存在的成员将被忽略。 zremrangebyrank key start stop 根据索引范围删除元素。 zremrangebyscore key min max 移除有序集key中,所有score值介于min和max之间(包括等于 min或max)的成员。 zcount key min max 返回有序集key中, score值在min和 max之间(默认包括 score值等于min或max)的成员的数量。 zrank key member 1、返回有序集key中成员member的排名。其中有序集成员按score值递增(从小到大)顺序排列。2、排名以 0 为底,也就是说, score 值最小的成员排名为 0 。 zrevrank key member 1、返回有序集key中成员member的排名。其中有序集成员按 score 值递减(从大到小)排序。2、排名以0为底,也就是说, score值最大的成员排名为 0 。 zscore key member 返回有序集key中,成员member的score值。