redis的使用-2
1、redis的数据类型
- String:字符串
- Hash:哈希
- List:列表
- Set:集合
- SortSet:有序集合
2、命令
-
对key的操作
# key_name 为 myredis # 1、创建key 127.0.0.1:6379[1]> set myredis 'renxu' OK # 2、获取key 127.0.0.1:6379[1]> get myredis "renxu" # 3、删除key 127.0.0.1:6379[1]> DEL myredis (integer) 1 # 4、序列化key 127.0.0.1:6379[1]> DUMP myredis "\x00\x05renxu\t\x00\xb5\x8d\x7fLn8\x11$" # 5、判断key是否存在 127.0.0.1:6379[1]> EXISTS myredis (integer) 1 # 6、对key设置过期时间(秒/时间戳/毫秒) 127.0.0.1:6379[1]> EXPIRE myredis 5 127.0.0.1:6379[1]> EXPIREAT myredis 1652436253 127.0.0.1:6379[1]> PEXPIRE myredis 5000 (integer) 1 127.0.0.1:6379[1]> get myredis "renxu" 127.0.0.1:6379[1]> get myredis (nil) # 7、查找符合的key 127.0.0.1:6379[1]> keys * 1) "myredis" # 8、将当前key移到指定库 127.0.0.1:6379[1]> MOVE myredis 2 (integer) 1 127.0.0.1:6379[1]> KEYS * (empty array) 127.0.0.1:6379[1]> SELECT 2 OK 127.0.0.1:6379[2]> keys * 1) "myredis" # 9、移除key的过期时间 127.0.0.1:6379[1]> set myredis 'wanger' OK 127.0.0.1:6379[1]> get myredis "wanger" 127.0.0.1:6379[1]> EXPIRE myredis 30 (integer) 1 127.0.0.1:6379[1]> get myredis "wanger" 127.0.0.1:6379[1]> PERSIST myredis (integer) 1 127.0.0.1:6379[1]> get myredis "wanger" # 10、查看key的剩余过期时间(秒/毫秒) 127.0.0.1:6379[1]> EXPIRE myredis 300 (integer) 1 127.0.0.1:6379[1]> TTL myredis (integer) 294 127.0.0.1:6379[1]> PTTL myredis (integer) 232555 # 11、从当前库随机返回一个key 127.0.0.1:6379[1]> keys * 1) "yourredis" 2) "weredis" 3) "myredis" 127.0.0.1:6379[1]> RANDOMKEY "weredis" 127.0.0.1:6379[1]> RANDOMKEY "yourredis" # 12、修改key的名称 127.0.0.1:6379[1]> RENAME myredis weredis OK 127.0.0.1:6379[1]> keys * 1) "yourredis" 2) "weredis" # 13、当新key不存在时,将key修改为新key 127.0.0.1:6379[1]> keys * 1) "yourredis" 2) "myredis" 3) "weredis" 127.0.0.1:6379[1]> RENAMENX myredis weredis (integer) 0 127.0.0.1:6379[1]> keys * 1) "yourredis" 2) "myredis" 3) "weredis" 127.0.0.1:6379[1]> RENAMENX myredis myredis_new (integer) 1 127.0.0.1:6379[1]> keys * 1) "yourredis" 2) "myredis_new" 3) "weredis" # 14、返回key的类型 127.0.0.1:6379[1]> keys * 1) "yourredis" 2) "myredis_new" 3) "weredis" 127.0.0.1:6379[1]> TYPE yourredis string # 15、切换数据库 127.0.0.1:6379[0]> select 1 127.0.0.1:6379[1]> # 16、清空当前库的键值对 flushdb # 17、清空所有数据库的键值对 flushall
-
操作String字符串
set myredis 'renxu' # 1、设置key get myredis # 2、获取key的值 getrange myredis 0 -1 # 3、获取截取的字符串[],0 -1为全部 getset myredis 'lisi'# 4、将给定 key 的值设为 value ,并返回 key 的旧值(old value)。 mset myredsis 'zahngsan' myredis1 'lisi' # 5、批量设置key值 mget myredsis myredis1 # 6、批量获取key的值 setex myredsis 10 'lisi' # 7、将key的值设置为lisi并且过期时间设置为10s setnx myredis 'zahngsan' # 8、当key不存在时才能设置key的值(SET if Not eXists) -SETBIT key offset value- -GETBIT key offset- # 9、对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。 # 对 key 所储存的字符串值,获取指定偏移量上的位(bit)。 setrange myredsis 2 'zhangsan' # 10、用指定的value 替换key中 offset开始的值 strlen myredsis # 11、获取key的value值得长度 msetnx myredsis myredis1 # 12、同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在 psetex myredsis 1000 'zhangsan' # 13、将key的值设置为zhangsan并且过期时间设置为1000毫秒 incr myredsis # 14、将key的数值的值加一 incrby myredsis 5 # 15、将key的数值的值加指定数值 incrbyfloat myredsis 0.5 # 16、将key的数值的值加指定小数值 decr myredsis # 17、将key的数值的值减一 decrby myredsis 5 # 18、将key的数值的值减指定数值 append myredsis ',xiaowang' # 19、将key的值拼接字符串
-
操作Hash(哈希)
HSET me name 'renxu' HSET me age 11 # 1、添加 key 属性 value值 HGET me age # 2、获取key 属性的值 HMSET me name 'zhangsan' age 12 # 3、批量设置 key 属性 value值 属性 value值 HMGET me name age # 4、批量获取 key 属性 属性 HKEYS me # 5、获取key的所有属性 HVALS me # 6、获取key的所有属性的值 HDEL me name age # 7、删除key 属性 [属性] HEXISTS me age # 8、查看key 属性可存在 HLEN me # 9、获取key属性的数量 HSETNX me birth 12 # 10、当key的属性不存在时才能设置value值 HINCRBY me age 2 # 11、给key的属性 的数字的值增加给定的整数值 HINCRBYFLOAT me birth 0.6 # 12、给key的属性 的数字的值增加给定的小数值 HGETALL me # 13、获取key的全部属性和值
-
操作list(列表)
LPUSH me 'zhangsa' 'lisi' # 1、添加key 值1 值2.. LRANGE me 0 -1 # 2、获取key的范围值,-1为无限制 LLEN me # 3、获取key的长度 LINDEX me 0 # 4、获取key中指定位置值 LPOP me # 5、取出左边第一个值 LPUSHX me 'qwq' # 6、插入已存在的key的左边第一个位置 LTRIM me 0 2 # 7、截取key的值 [] LREM me 2 ff # 8、删除key 的指定个数的指定值 RPUSH me 'dd' 'gg' # 9、从右边开始添加key 值1 值2.. RPUSHX me 'dd' # 10、插入已存在的key的右边第一个位置 RPOP me # 11、取出右边第一个值 LINSERT me beforezhong|after 'qwq' 'hh' # 12、在key的某个值得前/后添加值 RPOPLPUSH me you # 13、将原来key的最后一个元素取出放入一个新key的最左侧 BLPOP you 5 # 14、移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止 BRPOP you 5 # 15、移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。 BRPOPLPUSH me you 5 # 16、从列表中右边弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。 LSET me 0 bb # 17、重新设置key 指定位置指定值
-
操作Set(集合)
SADD myredis you me # 1、向集合key中添加一个或多个元素 SCARD myredis # 2、查看集合key元素的个数 SMEMBERS myredis # 3、返回集合key中所有成员 SRANDMEMBER myredis 2 # 4、返回集合key中一个或多个随机数 SISMEMBER myredis 'me' # 5、判断集合key中是否含有某个元素 SDIFF myredis yourredis # 6、返回第一个集合key与其他集合key之间的差异的元素 SINTER myredis yourredis # 7、查看多个结合key的交集 SDIFFSTORE yourredis myredis yourredis # 8、SDIFFSTORE destination key1 [key2] ;返回给定所有集合的差集并存储在 destination 中 SINTERSTORE yourredis myredis yourredis # 9、SINTERSTORE destination key1 [key2] ;返回给定所有集合的交集并存储在 destination 中 SUNION myredis yourredis # 10、返回多个集合的并集 SPOP yourredis # 11、移除并返回集合中的一个随机元素 SMOVE yourredis myredis ou # 12、SMOVE source destination member ;将 member 元素从 source 集合移动到 destination 集合 SREM yourredis ou you # 13、移除集合中一个或多个成员
-
操作有序集合(SortSet)
ZADD myredis 1 zhangsan ZADD myredis 2 lisi ZADD myredis 3 lisi ZRANGE myredis 0 3 withscores 1) "zhangsan" 2) "1" 3) "lisi" 4) "3" # 1、ZADD key score1 member1 [score2 member2] ;向有序集合添加一个或多个成员,或者更新已存在成员的分数 ZCARD myredis # 2、获取有序集合key的成员数 ZCOUNT myredis 0 2 # 3、ZCOUNT key min max 计算在有序集合中指定区间分数的成员数 ZINCRBY myredis 2 'renxu' # 4、ZINCRBY key increment member 有序集合中对指定成员的分数加上增量 increment ZINTERSTORE heredis 1 myredis; ZINTERSTORE heredis 2 myredis yourredis # 5、 ZINTERSTORE destination numkeys key [key ...] ;计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 destination 中 ZADD myredis 0 'erniu' 0 'lisi' 0 'wanger' 0 'zangsan' ZLEXCOUNT myredis [erniu [wanger (integer) 3 # 6、ZLEXCOUNT key min max ;在有序集合中计算指定字典区间内成员数量 [闭区间,(开区间 ZRANGEBYLEX myredis [erniu (wanger # 7、ZRANGEBYLEX key min max [LIMIT offset count] ;通过字典区间返回有序集合的成员 [闭区间,(开区间 ZRANK myredis wanger # 7、返回有序集合中指定成员的索引 ZREM myredis lisi # 8、删除有序集合一个或多个成员 ZRANGEBYSCORE myredis 0 1 # 9、通过分数返回有序集合指定区间内的成员 ZREMRANGEBYLEX myredis [erniu (wanger # 10、移除有序集合中给定的字典区间的所有成员 ZSCORE myredis 'wo' # 11、返回有序集中,成员的分数值 ZREVRANGE myredis 1 2 withscores # 12、返回有序集中指定区间内的成员,通过索引,分数从高到低 ZRANGE myredis 0 -1 withscores # 13、通过索引区间返回有序集合指定区间内的成员 ZREMRANGEBYSCORE myredis 0 1 # 14、移除有序集合中给定的分数区间的所有成员 ZREMRANGEBYRANK myredis 0 1 # 15、移除有序集合中给定的排名区间的所有成员 ZREVRANGEBYSCORE myredis 2 1 # 16、返回有序集中指定分数区间内的成员,分数从高到低排序 ZUNIONSTORE myredis2 2 myredis myredis1 # 17、计算给定的一个或多个有序集的并集,并存储在新的 key 中