💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
| Redis队列常用命令 | | | --- | --- | | Llen key | 获得队列(List)的长度 | | lrange key, start, end | 查看名称为key的list中start至end之间的元素 | | rpush key, value | 在名称为key的list尾添加一个值为value的元素 | | lpush key, value | 在名称为key的list头添加一个值为value的 元素 | | lindex key, index | 返回名称为key的list中index位置的元素 | | lpop key | 返回并删除名称为key的list中的首元素 | | rpop key | 返回并删除名称为key的list中的尾元素 | | rpoplpush key1, key2 | 返回并删除名称为key1的list的尾元素,并将该元素添加到名称为key2的list的头部 | | string 类型 | 字符串类型 ,key表键名,value表键值 | | --- | --- | | set[ setnx ] key value | 赋值,一个键只能有一个,再次使用set直接覆盖原有的值 | | get key | 获取键的值 | | setex key 10 value | 设置key有效期为10秒 | | setrange key 2 value_new | 键值替换,2为value的下标,然后从下标为2之后的值替换位value_new,换的字符没有原字符长,原字符依旧保留 | | mset key value key1 value1... | 批量设置多个键和值,成功返回ok,失败返回0 | | msetnx key value key1 value... | 批量设置多个键和值,有一个键存在则返回0,则全部设置失败 | | getset key new_value | 获取旧值。设置新值(值的替换) | | getrange key 0 5 | 截取键为key的值,从下标0开始,截取5个字符 | | mget key key1... | 批量获取key key1...的值 | | incr key | 使key递增,key不存在设置key,并设置value为0再加1,value须为整型 | | incrby key value | 增加(正或负)指定的值, key不存在设置key,并设置value为0再加1,value须为整型 | | decr key | 使key递减,key不存在设置key,并设置value为0再减1,value须为整型 | | decrby key value | 减(正或负)指定的值, key不存在设置key,并设置value为0再减1,value须为整型 | | append key new_value | 给原value拼接新new_value,key要已存在 | | strlen key | 取key的value值的字符长度 | | exists key | 判断键key是否存在,存在返回1,否则返回0 | | del key | 删除key,成功返回1,则0 | | expire key 10 | 设置键key的过期时间(10秒过期) | | ttl key | 获取key过期时间 | | rename key key1 | 重命名key为 key1 | | type key | 返回key的类型 | | | | | hashes类型 | 哈希类型 | | --- | --- | | hset table key value | 添加表设置key和value | | hsetnx table key value | 设置hash field 为指定值,如果key不存在,则先创建,存在则返回0 | | hmset table key key1... value value2... | 同时设置hash表多个key和value | | hmget table key key1... | 同时获取table中多个key的值 | | hincrby table key | 指定table中key自增,该value须为整型 | | hexists table key | 判断table中是否存在key,有返回1,没有则返回0 | | hlen table | 获取table中key的个数 | | hdel table key | 删除table中key,成功返回1,失败0 | | hkeys table | 获取hash table中所有key | | hvals table | 获取hash table中所有value | | hgetall table | 获取table中所有key和value | | type key | 返回key的类型 | | list类型 | 栈和列表类型 | | --- | --- | | lpush list value | 从头部压入list一个value元素 | | lrange list 0 -1 | 从list取元素(0头部,-1尾部),0和-1都是下标,0是从头开始的下标,-1是尾部开始的下标 | | rpush list value | 从尾部压入list一个value元素 | | linsert before value value2 | 从value和value1之间压入一个元素 | | lset list 0 new_value | 修改list下标为0的值,new_value为修改后的值 | | lrem list 1 value | 从key对应的list中删除n个和value相同的元素(n<0从尾删除,n=0全部删除) ??? | | ltrim list 0 2 | 删除list中除了下标0-2的全部值 | | lpop list | 从list头部删除一个元素,并返回删除的元素 | | rpop list | 从list尾部删除一个元素,并返回删除的元素 | | rpoplpush list list1 | 从第一个list的尾部移除元素并添加到第二个list头部 | | lindex list 0 | 返回下标为0的值 | | llen list | 返回list里面元素个数 | | type key | 返回key的类型 | | sets类型 | 无序集合,并集,交集,差集 | | --- | --- | | sadd set value | 向集合set添加value值,重复则返回0 | | smembers set | 查看集合set的全部值 | | srem set value | 删除集合set里面的value值 | | spop set value | 从集合set随机返回一个元素,并从集合set移除 | | sdiff set set1 | 查看两个集合set、set1的差集,以集合set为标准 | | sinterstore set set1 set2 | 返回两个集合set、set1的交集,并存到另一个集合set2 | | sunion set set1 | 返回两个集合的并集 | | sunionstore set set1 set2 | 返回两个集合set、set1的并集,并存到另一个集合set2 | | smove set set1 value | 将集合set的value移到集合set1中 | | scard set | 返回集合set的value个数 | | sismember set value | 判断value是否是集合set的元素 | | srandmember set | 从集合set随机返回一个元素,不删除该元素 | | type key | 返回key的类型 | | sorted sets类型 | 有序集合 | | --- | --- | | zadd zset key value | 向集合zset中添加一个值,如果value相同,key更新,key为double类型,key学名为“分数“,key可以重复,value 重复则更新key | | zrange zset 0 -1 withscores | 查看集合zset里面的值(0 -1从头到尾,withscores显示序列号) | | zrem zset value | 删除集合zset中值为value的元素 | | zincrby zset 2 value | 修改集合zset中值为value的分数key的值 | | zrank zset value | 返回该集合zset中值为value的下标,(从小到大,先顺序排序) | | zrevrank zset value | 返回集合zset中值为value的下标,(从大到小,先倒序) | | zrangebyscore zset 1 2 withscores | 查找集合zset中key到key(分数1到分数2)的value | | zcount zset 1 3 | 返回集合zset中key到key1(分数1到分数2)的数量 | | zcard zset | 返回zset中元素个数 | | zremrangebyrank zset 1 5 | 删除集合zset中下标从1到5的值value | | type key | 返回key的类型 | | 其它,关于数据库 | | | --- | --- | | select 0 | 选择当前数据库,redis编号0-15 | | move key 1 | 将键key从0移动到另外一个数据库1中 | | dbsize | 返回当前数据库中key的数目 | | info | 获取服务器的信息和主机 | | config get * | 实时传储收到的请求,返回参数的值 | | flushdb | 删除当前数据库所有key | | flushall | 删除所有数据库所有key | | ping | 测试连接是否存活,成功返回PONG,失败报错 | | echo value | 输出内容 | | quit | 退出 | | 常用命令及高级应用 | | --- | --- | 3、redis高级 1、安全性 vi redis.conf->找到requirepass->折行添加requirepass user->重启服务 再次进入使用命令需要授权->auth user 或者启动服务设置,./redis-cli -a user 2、主从复制 master(主) slave(从) 多s备份到M不影响写入M 配置主从服务器 两台服务器(主和从) M:启动redis,进入客户端,授权 S:vi redis.conf -> 找到slaveof,折行添加slaveof 主IP 6370(端口)->找到masterauth,折行添加masterauth user(口令)->启动redis-->登录本地 info查看redis服务器信息,role slave ,slave0 IP,端口 online 3、事务处理 multi 连接进入一个事务上下文 后续命令先存放一个队列中 执行exec命令才执行 discard命令清空队列,事务回滚(须在exec之前执行) 执行multi事务,有执行不成功队列,exec继续执行可执行命令 乐管锁 watch 监控 watch key multi set key value exec 4、持久化机制 redis将内存中数据同步到硬盘保证持久化 snapshotting(快照)默认方式,数据存文件 save 保存快照 save 900 1 (900秒内有一个key修改,则发起快照保存) 快照文件(二进制)/bin/dump.rdb Append-only file(缩写aof)的方式,操作存文件 操作写入文件,重启重新执行文件中的操作 fsync(同步函数) 配置 vi /etc/redis.conf 找到save(快照配置) 找到appendonly yes 找到appendonly always 重启 appendonly yes 启动aof持久化方式 appendfsync always 收到写命令立即写入磁盘,最慢,保证持久化机制 appendfsync everysec 每秒写入磁盘一次,有性能和持久化做折中 appendfsync no 完全依赖aof,性能最好,持久化没保证 数据存入/bin/ 5、发布订阅信息 pub/sub(通信模式,即两台服务器通信) subscrible 频道一,频道二(订阅) publish 频道一 value 6、虚拟内存使用 配置: vi redis.conf vm-enable yes 开启vm功能 vm-swap-file /tmp/redis.swap 交换出来values保存的文件路径 vm-max-memory 1000000 reids使用的最大内存上限 vm-page-size 32 每个页面的大小32字节 vm-pages 13132132 最多使用多少个页面 vm-max-threads 4 用于执行value对象换入的工作线程数量 添加really-use-vm yes 到vm-enable下面 重启 | Windows开启服务 | | | --- | --- | 1、打开**cmd**窗口 使用 cd 命令切换目录到**C:\\redis**运行 2、redis-server.exe redis.windows.conf 3、如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的