Redis命令
Redis数据类型
redis总共有五种数据类型
string(字符串) # 二进制安全 # 可以包含任何数据,比如说jpg图片或者序列化的对象,一个键最大能存储512M hash(哈希/字典) # 键值对的集合 # 适用存储对象,并且可以像数据库中update一个属性一样修改某一项的值 # 场景: 存储,读取,修改用户属性 list(列表) # 链表(双向链表) # 增删查快,提供了操作某一段元素的API # 最新消息排行等功能(比如朋友圈的时间线); 消息列队 set(无序集合) # 哈希表实现,元素不重复 # 添加,删除,查找的复杂度都是O(1)--算法; 为集合提供求交集,并集,差集等操作 # 场景: 共同好友; 利用唯一性,统计访问网站的独立IP; 好友推荐时,很具tag求交集,大于某个阈值就可以推荐 zset(有序集合) # 将set中元素增加一个权重参数score,元素按score有序排列 # 数据插入集合时,已经进行天然排序 # 场景: 排行榜; 带权重的消息队列
redis命令
C:\Users\Yue>redis-cli 127.0.0.1:6379> Redis命令 # 命令操作 ping # 用来测试redis是否连通,返回值是pong info # 获取系统信息 echo # 打印输入的内容,测试使用 quit # 退出 select 1 # 切换库 redis中有16个库 0 ~ 15 # 值操作 set key value # 设置key value 键值对(例:set name nayue) 再次插入会修改 get key # 获取值 del key # 删除指定的一个或者多个key 不存在的会忽略 exists key # 判断key是否存在,存在未1,不存在为0 expire key seconds # 给指定的key设置存活时间,当key过期以后,就自动删除(set name youzi \ expire name 5) ttl key # 查看key的存活时间(倒计时),-2 key不存在 -1 永久生效 pexpire key 毫秒 # 给一个key 设置过期时间,单位是毫秒 pttl key # 查看key的存活时间,单位为毫秒 keys pattern # 查找所有符合pattern 的key,支持linux的通配符 (例:查找所有 keys * ) move key db # 移动当前指定的key到指定的db库里面,成功返回1,失败返回0 (move name 2) randomkey key # 随机获取一个key,但是不删除,如果数据库为空,则返回空 rename key newkey # 重命名key,如果源key不存在,则报错,如果目标newkey存在,则覆盖 renamenx key newkey # 重命名key,如果源key不存在,则报错,如果目标newkey存在,则不作出改变 type key # 查看key所存储的value数据类型,如果没有这个key,则返回none
Redis-string命令
127.0.0.1:6379> SET key value [EX seconds] [PX milliseconds] [NX|XX] # []内为可选参数 # 设置key value; 如果key存在,则覆盖,不存在,则新建 # EX seconds 超时时间 秒 # PX milliseconds 超时时间 毫秒 # NX 如果键不存在,则新建,如果存在,则返回nil # XX 只有键存在,才能操作 127.0.0.1:6379> GET key # 获取key对应的value,只能获取一个,如果key存在,则返回值,如果key不存在,则返回nil 127.0.0.1:6379> MSET key value [key value ...] # 批量创建key vlaue对应关系,会覆盖已存在的key (mset k1 v1 k2 v2 ...) 127.0.0.1:6379> MGET key [key ...] # 批量获取key,如果不存在,则返回nil 127.0.0.1:6379> GETSET key value # 给指定的key设置新value,并返回原来的value,如果key不存在,则返回nil 127.0.0.1:6379> STRLEN key # 返回value的长度 127.0.0.1:6379> APPEND key value # 如果key存在,则追加,如果key不存在,则新建 127.0.0.1:6379> INCR key # 将key中存在的数加1,只能对数字有效 127.0.0.1:6379> DECR key # 将key中存在的数值减1,只能对数字有效 127.0.0.1:6379> INCRBY key increment # 将key中存在的数值指定增加多少,只对数字有效 27.0.0.1:6379> DECRBY key decrement # 将key中存在的数值减少指定的值,只能对数字有效 127.0.0.1:6379> GETRANGE key start end # 切片,同python类似,不能使用步长 127.0.0.1:6379> INCRBYFLOAT key increment # 将key中存在的数值增加指定的浮点数 (默认保留17位)
Redis-list命令 列表
127.0.0.1:6379> LPUSH key value [value ...] # 将一个或者多个value插入到列表的头部 127.0.0.1:6379> LPOP key # 移除并返回列表key的头一个元素 127.0.0.1:6379> RPOP key # 移除并返回列表key的最后一个元素 127.0.0.1:6379> LRANGE key start stop # 查看列表指定的元素,全部显示是0,-1, (LRANGE libry 0 -1) 127.0.0.1:6379> RPUSH key value [value ...] # 将一个或者多个value插入到列表的尾部(最后边) 127.0.0.1:6379> RPUSHX key value # 将value插入到key的尾部,key必须存在才可以 127.0.0.1:6379> LPUSHX key value # 将value插入到key的头部,key必须存在才可以 127.0.0.1:6379> LINDEX key index # 从表头开始,获取下标为index的value 127.0.0.1:6379> LINSERT key BEFORE|AFTER pivot value # 将value插入到key指定的元素前或者后 # before 前 after 后 # 如果value不存在,则不操作 127.0.0.1:6379> LLEN key # 获取列表长度 127.0.0.1:6379> LREM key count value # 删除列表中的value # count > 0 从表头往表尾的方向查找 删除匹配的count个value # count = 0 全部删除 匹配的value # count < 0 从表尾往表头的方向查找 删除匹配的count个value 127.0.0.1:6379> LSET key index value # 替换指定的索引位置的value,如果索引超出范围,则报错 127.0.0.1:6379> LTRIM key start stop # 列表的切片(裁剪), 超出为空,只能正向切
Redis-hash命令 字典
# {'A':{"a1":'b1',"a2':'b2',"a3":"b3"}} 类似 127.0.0.1:6379> HSET key field value # 给hash增加key 字段 value值 (127.0.0.1:6379> HSET home a1 g1) # key不存在 则创建 key存在 则增加值 field存在 则修改value (127.0.0.1:6379> HSET home a2 g2) 127.0.0.1:6379> HGET key field # 获取某个hash里面key的field的value 127.0.0.1:6379> HGETALL key # 获取所有的键值对 127.0.0.1:6379> HLEN key # 获取hase的长度 127.0.0.1:6379> HMSET key field value [field value ...] # 批量增加键值对 (HMSET home a1 b1 a2 b2 ...) 127.0.0.1:6379> HMGET key field [field ...] # 批量获取键值对 127.0.0.1:6379> HSETNX key field value # 给指定的hash增加键值对,如果原来的field存在,则操作无效,如果不存在,则新增 127.0.0.1:6379> HKEYS key # 获取hash表中所有的field 127.0.0.1:6379> HVALS key # 获取hash表中所有的valu 127.0.0.1:6379> HDEL key field [field ...] # 删除hash表中的一个或者多个field-value 127.0.0.1:6379> HEXISTS key field # 判断hash表中的field是否存在,如果存在,则为1,不存在则为0 127.0.0.1:6379> HINCRBY key field increment # 给hash表中的field增加指定的数值,只限于数字 127.0.0.1:6379> HINCRBYFLOAT key field increment # 给hash表中的field增加指定的浮点,只限于数字
Redis-set命令 无序集合
127.0.0.1:6379> SADD key member [member ...] # 给集合添加值,如果值存在,则什么都不操作,如果值不存在,则添加 127.0.0.1:6379> SMEMBERS key # 获取集合所有的成员 127.0.0.1:6379> SCARD key # 获取集合的个数(长度) 127.0.0.1:6379> SDIFF key [key ...] # 获取两个集合的差集,前面存在,但是后面不存在的 127.0.0.1:6379> SINTER key [key ...] # 获取两个集合的交集 127.0.0.1:6379> SUNION key [key ...] # 获取两个集合的并集 127.0.0.1:6379> SISMEMBER key member # 判断元素是否在集合中,如果存在,则为1,如果不存在则为0 127.0.0.1:6379> SMOVE source destination member # 将指定的元素从一个集合移动到另外一个集合中 # 如果源集合存在,则移动,如果不存在,则忽略 # 如果目标集合存在,直接移动,如果目标集合不存在,则新建集合 再移动 127.0.0.1:6379> SPOP key [count] # 随机删除指定个数(默认1个)的元素,并把删除的元素打印出来 127.0.0.1:6379> SRANDMEMBER key [count] # 随机获取指定个数的元素 默认随机获取一个 # 如果count > 0; 如果count大于集合的总数的话,则全部取出; 如果count小于集合总数的话,则随机取出count个 # 如果count<0,则随机count的绝对值次取出值 127.0.0.1:6379> SREM key member [member ...] # 删除指定的一个或者多个元素
Redis-zset命令 有序集合
将Redis-set所有命令前第一个S换成Z即可 例:(sadd --> zadd)

浙公网安备 33010602011771号