DB——redis Love The Way You Lie 2022-05-09 14:54 201阅读 0赞 > redis 是一个高性能的键值对数据库,属于 nosql 一类。 > 支持的键值数据类型有: > 字符串类型 列表类型 > 有序集合类型 散列类型 > 集合类型 > 应用场景主要有: > 缓存 > 任务队列 > 应用排行榜 > 网站访问统计 > 数据过期处理 > 分布式集群架构中的session分离 #### Keys 通用操作 #### `keys *`:查看所有keys `keys key?`:正则匹配keys `del key1 key2...`:删除keys `exxists key`:查看key是否存在 `get key`:获取key的值 `rename key newkey`:重命名key `expire key second`:设置有效期 `ttl key`:查看剩余有效期 `type key`:查看数据类型 #### 字符串类型存取 #### `set key value`:创建一个键为key,值为value的数据。 `get key`:获取键为key的数据的值。 `getset key value`:先获取键为key的数据值,再将其值设置为value `del key`:删除键为key的数据。 `incr key`:将键为key的数据的值加1(数据若无法转成int型则会报错,若值不存在则将创建默认值为0再加1) `decr key`:将键为key的数据的值减,与incr相反功能 `incrby key num`:将键为key的数据的值加num(数据若无法转成int型则会报错,若值不存在则将创建默认值为0再加1) `decrby key num`:将键为key的数据的值减num,与decrby相反功能 `append key arg`:将键为key的数据的值后追加字符串arg,若不存在则创建并赋值为arg #### 哈希数据 #### > string key 和string value的map容器。 > 每一个hash可以存储4294967295个键值对 `hset setname key value`:创建一个hash并添加一对键值。 eg: `hset people name xiaoming` `hset people age 18` `hmset setname key1 value1 key2 value2`:创建一个hash并添加多对键值。 eg: `hmset people name xiaoming age 18` `hget setname key`:获取名为setname的哈希中键为key的数据的值。 `hgetall setname`:获取名为setname的哈希中的所有键和值 `hdel setname key1 key2`:删除名为setname的哈希中键为key1 key2的值。 `del setname`:删除名为setname的哈希。 `hexists setname key`:判断名为setname的哈希中是否存在键为key的数据,存在返回1,不存在返回0。 `hincrby setname key num`:与incrby功能相同。 `hlen setname`:查询哈希数据数量 `hkeys setname`:查询哈希中所有的键 `hvals setname`:查询哈希中所有的值 #### 列表 #### > ArrayList 使用数组方式 > LinkedList 使用双向链接方式 `lpush listname value1,value2,value3...`:从左侧向链表中添加数据,没有则创建。数据中value1在右侧,value2在中间,value3在左侧 `rpush listname value1,value2,value3...`:从右侧添加。 `lrange listname start_num end num`:查看列表中从start\_num到end\_num的数据 `lpop listname`:从左弹出数据 `rpop listname`:从右弹出数据 `llen listname`:查看列表长度 `lpushx listname value`:当此列表存在时左边插入value `rpushx listname value`:当此列表存在时左边插入value `lrem listname count value`:删除列表中count个value数据,count小于0时从后删 `lset listname index value`:将第index个元素设置为值value `linser listname before key value`:在元素key前插入元素value `linser listname after key value`:在元素key后插入元素value `rpoplpush listname1 listname2`:将listname1右边的一个元素弹出到listname2的左边 #### set #### > set集合中不准许出现重复的元素 `sadd setname value1,value2,value3..` 创建set集合,并向其中插入元素 `srem setname value`:删除集合中的value元素 `smembers setname`:查看set中的数据 `smembers setname value`:判断set中是否存在元素value `sdiff setname1 setname2`:差集运算 `sinter setname1 setname2`:交集运算 `sunion setname1 setname2`:并集运算 `scard setname`:返回数据数量 `srandmember`:随机返回一个数据 `sdiffstore setname1 setname2 setname3`:将setname1与setname2的差集数据存入setname3 交集,并集也相同 #### Sorted-Set #### `zadd sortsetname score1 value1 score2 value2...`:创建一个sortedset,并添加数据 `zscore sortsetname value`:获取value的score `zcard sortset`:获取sortedset中数据个数 `zrem sortset value1,value2...`:删除指定的value `zrange sortsetname start_num end_num`:获取指定范围的value数据 `zrange sortsetname start_num end_num withscores`:获取指定范围的value以及score数据 `zrevrange`:与zrange用法类似,按score的从大到小排列 `zremrangebyrank sortsetname start_num end_num`:删除指定范围内的数据 `zremrangebyscore sortsetname start_num end_num`:删除指定score范围内的数据 `zrangebyscore sortsetname start_num end_num withscores limit start_num1 end_num1`:获取指定score范围内的指定范围数据 `zincrby sortsetname num value`:给value的score加num `zcount sortsetname score_start_num score_end_num`:指定score范围内元素个数 使用场景: * 积分排行榜 * 构建索引数据 #### 切换数据库 #### > redis 默认有0~15号数据库,使用中默认使用0号 `select 1`:切换数据库 `move key 1`:移动key到1号数据库 #### 引入事物 #### `multi ***`:以multi开始后语句以事物方式执行 `exec`:提交事务 `discar`:回滚事务
还没有评论,来说两句吧...