1.Redis存储数据的结构
常用的5种数据结构
(1)key-string:一个key对于一个值
(2)key-hash:一个key对应一个Map
(3)key-list:一个key对应一个列表
(4)key-set:一个key对应一个集合
(5)key-zset:一个key对应一个有序的集合
另外三种数据结构:
HyperLogLog:计算近似值
GEO:地理位置
BIT:位图,一般存储的也是一个字符串,存储的是一个byte[]
2.string常用命令
文档:http://redisdoc.com/string/index.html#
1 # 1、添加值 2 set key value 3 4 #2、取值 5 get key 6 7 #3、批量操作 8 mset key value [key value...] 9 mget key [key...] 10 #4、自增命令(自增1) 11 incr key 12 13 #5、自减命令(自减1) 14 decr key 15 16 #6、自增或自减指定数量 17 incrby key increment 18 decrby key increment 19 #7、设置值的同时设置生存时间(每次向redis中添加数据时,尽量都设置生存时间) 20 setex key second value 21 22 #8、设置值,如果当前key不存在的话(如果这个key存在,什么事都不做,如果这个key不存在,和set命令一样) 23 setnx key value 24 25 #9、在key对应的value后,追加内容 26 append key value 27 28 #10、查看value字符串的长度 29 strlen key
3.hash常用命令
1 #1、存储数据 2 hset key field value 3 4 #2、获取数据 5 hget key field 6 7 #3、批量操作 8 hmset key field value [field value ...] 9 hmget key field [field ...] 10 #4、自增(指定自增的值) 11 hincrby key field increment 12 #5、设置值(如果key-field不存在,那么就正常添加,如果存在,什么事都不做) 13 hsetnx key field value 14 15 #6、检查field是否存在 16 hexists key field 17 18 #7、删除key对应的某个或多个field 19 hdel key field [field...] 20 #8、获取当前hash结构中的全部field和value 21 hgetall key 22 23 #9、获取当前hash结构中的全部field 24 hkeys key 25 26 #10、获取当前hash结构中的全部value 27 hvals key 28 29 #11、获取当前hash结构中field的数量 30 hlen key
4.list常用命令
1 #1、存储数据(从左侧插入数据,从右侧插入数据) 2 lpush key value [value...] 3 rpush key value [value...] 4 5 #2、存储数据(如果key不存在,什么事都不做,如果key存在,但是不是list机构,什么都不做) 6 lpushx key value 7 rpushx key value 8 9 #3、修改数据(修改指定索引位置的值,如果index超出整个列表的长度会失败) 10 lset key index value 11 #4、弹栈方式获取数据(左侧/右侧弹出数据) 12 lpop key 13 rpop key 14 15 #5、获取指定索引范围的数据(start从0开始,stop输入-1,代表最后一个,-2代表倒数第二部) 16 lrange key start stop 17 18 #6、获取指定索引位置的数据 19 lindex key index 20 21 #7、获取整个列表的长度 22 llen key 23 #8、删除列表中的数据(他是删除当前列表中的count个value值,count>0从左侧向右侧删除,count<0从右侧向左侧删除),count=0,删除列表全部的value 24 lrem key count value 25 26 #9、保留列表中的数据(保留指定范围内的数据,超过整个索引范围被移除掉) 27 ltrim key start stop 28 29 #10、将一个列表中最后的一个数据,插入到另外一个列表的头部位置 30 rpoplpush list1 list2
5.set常用命令
1 #1、存储数据 2 sadd key member [member...] 3 4 #2、获取数据(获取全部数据) 5 smembers key 6 7 #3、随机获取一个数据(获取的同时移除数据,count默认为1,代表弹出数据的数量) 8 spop key [count] 9 #4、交集(取多个set集合交集) 10 sinter set1 set2... 11 12 #5、并集(获取全部集合中的数据) 13 sunion set1 set2... 14 15 #6、差集(获取多个集合中不一样的数据,使用第一个集合进行取进行比较) 16 sdiff set1 set2... 17 #7、删除数据 18 srem key member [member...] 19 20 #8、查看当前的set集合中是否包含这个值 21 sismember key member
6.zset常用命令
1 #1、添加数据(score必须是数值,member不允许重复) 2 zadd key score member [score member...] 3 4 #2、修改member的分数、(如果member是存在于key中的,正常增加分数,如果member不存在,这个命令相当于zadd) 5 zincrby key increment member 6 #3、查看指定的member的分数 7 zscore key member 8 9 #4、获取zset中数据的数量 10 zcard key 11 12 #5、根据score的范围查询member数量 13 zcount key min max 14 15 #6、删除zset中的成员 16 zrem key member [member...] 17 #7、根据分数从小到大排序,获取指定范围内的数据(withscores如果添加这个参数,那么会返回member对应的分数) 18 zrange key start stop [withscores] 19 20 #8、根据分数从大到小排序,获取指定范围内的数据(withscores如果添加这个参数,那么会返回member对应的分数) 21 zrevrenge key start stop [withscores] 22 23 #9、根据分数的范围获取member(withscores代表同时返回score,添加limit,就和MySQL中一样,如果不希望等于min或者max的值被查询出来,可以采用‘(分数’ 相当于<或者>,但不等于,是一个开区间,最大值和最小值使用+inf和-inf来标识) 24 zrangebyscore key min max [withsores] [limit offset count] 25 26 #10、根据分数的范围获取member(withscores代表同时返回score,添加limit,就和MySQL中一样) 27 zrevrangebyscore key max min [withsores] [limit offset count]
7.key常用命令
1 #1、查看Redis中的全部key(pattern:*,xxx*,*xxx) 2 keys pattern 3 4 #2、查看某一个key是否存在(1 - key存在,0 - key不存在) 5 exists key 6 7 #3、删除key 8 del key [key...] 9 #4、设置key的生存时间,单位为秒,单位为毫秒. 10 expire key second 11 pexpire key milliseconds 12 13 #5、设置key的生存时间,单位为秒,单位为毫秒,设置能活到什么时间点 14 expireat key timestamp 15 pexpireat key milliseconds 16 17 #6、查看key的剩余生存时间,单位为秒,单位为毫秒(-2 - 当前key不存在;-1 - 当前key没有设置生存时间;具体的生存时间) 18 ttl key 19 pttl key 20 21 #7、移除key的生存时间(1 - 移除成功,0 - key不存在生存时间,key不存在) 22 persist key 23 #8、选择操作的库 24 select 0~15 25 26 #9、移动key到另外一个库中 27 move key db
8.库常用命令
1 #1、清空当前所在的数据库 2 flushdb 3 4 #2、清空全部数据库 5 flushall 6 7 #3、查看当前数据库中有多少个key 8 dbsize 9 10 #4、查看随后一次操作的时间 11 lastsave 12 13 #5、实时监控Redis服务接收到的命令 14 monitor