当前位置: 首页 > 科技观察

打好Redis的基础,你可能需要这些常用命令

时间:2023-03-22 10:31:08 科技观察

1.背景介绍Redis是一个开源的、高级的key-value存储。它常被称为数据结构服务器,因为键可以包含字符串、散列、链表、集合和有序集合,并支持各种排序方式,所以命令丰富,容易混淆。2、redis常用命令1、工具命令1)、redis-server工具命令启动redis服务进程#指定配置文件启动服务redis-serverredis.conf#指定端口启动服务redis-server--port63792)、redis-cliredis客户端终端工具#使用socket连接redis服务器redis-cli-s/tmp/redis.sock#不要使用socket连接redis服务器redis-cli3),redis-benchmarkRedis性能测试工具#使用默认参数进行测试redis-benchmark#自定义参数测试redis-benchmark-n1000000--csv4),redis-check-dumpredis检查修复本地数据文件工具#redis-check-dumpdump.rdb5),redis-check-aofredis检查修复AOF日志文件工具#redis-check-aofappendonly。aof6)、redis-sentinelredis集群管理工具2、通用命令authRedis认证命令,在执行其他命令之前,必须先进行认证(前提是配置文件中设置了认证参数)ping测试客户端与服务端的连接,返回值为PONG,表示联通configget*获取所有配置参数configsetconfig_nameconfig_value设置配置参数值info返回服务器信息exist检查当前库中是否有keyttl获取key有效期expire设置key的过期时间persistkey_name除了某个key的过期时间del删除某个keyselectn切换到n的数据库,redis默认的数据库是0-15,一共16个数据库movekey_namenmove当前数据库对其他数据库的键typekey_name返回键数据类型dbsize获取当前库中所有键的个数rarykey*获取当前所有key(当key数量过多时会挂死,慎用)flushdb删除当前库中所有keyflushshall删除所有库中所有keysave创建当前库backupbgsave同save,但是是后台备份,不阻塞主进程eval执行lua脚本3、类型相关命令1)、strINGset添加一个键值对,多次设置会覆盖原来的值q前提是keyvalue是整数)strlen获取key的长度append给指定的key添加一个值,返回字符串长度setnx判断key是否存在,返回0,否则返回1,不会覆盖原来的valuegetrange根据指定下标获取key的值Demo:127.0.0.1:6379>getnumber"20"127.0.0.1:6379>incrnumber(integer)211127.0.0.1:6379>decrnumber(integer)20127.0.0.1:6379>incrbynumber5(integer)25127.0.0.1:6379>appendnumberhello(integer7127.0.0.1:6379>strlennumber(integer)7127.0.0.1:6379>setnxnumberhello(integer)0127.0.0.1:6379>getrangenumber05"25hell"2),LISTSlpush添加一个或多个值在列表前面rpush在列表后添加一个或多个多个值lrangeget根据指定的下标获取列表中的元素lpop并取出列表中的第一个元素llen获取列表的长度)3127.0.0.1:6379>lrangemylists0-11)"pear"2)"orange"3)“苹果”127.0.0.1:6379>rpushmylistsbanana(整数)4127.0.0.1:6379>lrangemylists0-11)“梨”2)“橙”3)“苹果”4)“banana"127.0.0.1:6379>lpopmylists"pear"127.0.0.1:6379>lsetmylists0fourOK127.0.0.1:6379>lrangemylists0-11)"four"2)"apple"3)"banana"3),SETS添加到集合加值smembers看集合中的值sismember判断一个元素是否是集合中的元素sunion返回两个集合的并集sdiff返回两个集合的差(以前面写的集合作为参考)sinter返回两个集合scard中的交集返回集合中的元素个数srem删除集合中的指定值)"two"3)"one"127.0.0.1:6379>smembersmyset11)"two"2)"mysql"3)"redis"127.0.0.1:6379>sdiffmysetmyset11)"三"2)"一"127.0.0.1:6379>sintermysetmyset11)"二"127.0.0.1:6379>sunionmysetmyset11)"二"2)"三"3)"mysql"4)"一个"5)"redis"127.0.0.1:6379>scardmyset(整数)3127.0.0.1:6379>sismembermysetredis(整数)0127.0.0.1:6379>sremmysettwo(integer)1127.0.0.1:6379>smembersmyset1)"three"2)"one"4),SORTEDSETSzadd将key插入到sortedset中,并指定顺序zrange取出指定顺序的元素zscore返回顺序zcountintheset返回集合zrem删除集合中的指定元素zrank返回名称keyzrangesset0-1withscores1)"one"2)"1"3)"two"4)"2"5)"中的元素排名三"6)"3"127.0.0.1:6379>zrankssetone(整数)0127.0.0.1:6379>zrankssettwo(整数)1127.0.0.1:6379>zcardsset(整数)3127.0.0.1:6379>zincrbysset2two"4"127.0.0.1:6379>zrangesset0-1withscores1)"一"2)"1"3)"三"4)"3"5)"二"6)"4"127.0.0.1:6379>zremssetthree(整数)1127.0.0.1:6379>zrangesset0-1withscores1)"one"2)"1"3)"two"4)"4"5)、HASHEShset返回hash字段中的指定值,如果key不存在,先创建hget获取key哈希字段中指定的值hmset同时批量设置多个域hincrby指定哈希域加上给定值hexists指定字段是否存在,返回1,否则返回2hlen返回指定哈希表的字段个数Demo:127.0.0.1:6379>hsetusernamejack(整数)1127.0.0.1:6379>hgetusername"jack"127.0.0.1:6379>hsetnxusernamejack(整数)0127.0.0.1:6379>hmsetuser1namebobsexmanage11OK127.0.0.1:6379>hmgetuser1namesexage1)"bob"2)"1)"1man"3“12.0.1:6379>hexistsuser1score(整数)0127.0.0.1:6379>hlenuser1(整数)3127.0.0.1:6379>hincrbyuser1age5(整数)16127.0.0.1:6379>hkeysuser11)“名称”2)“性别”3)”age"127.0.0.1:6379>hdeluser1sex(integer)1127.0.0.1:6379>hgetalluser11)"name"2)"bob"3)"age"4)"16"4、其他命令1)、transactionmulti启动一个事务execexecutionTransactiondiscardUndotransactionwatchwatchdatabasekey,如果有变化则返回empty>getcsdnQUEUED127.0.0.1:6379>exec1)OK2)"blob"2),Replicationinforeplication获取复制信息slaveof建立复制关系sync同步3)、订阅和发布subscribe订阅一个或多个channelpublish向一个channel发送信息