打好Redis的基础需要学习哪些常用命令
打好Redis的基础需要学习哪些常用命令,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
一、背景介绍
Redis 是一个开源的,先进的key-value存储。它通常被称为数据结构服务器,因为键可以包含字符串、哈希、链表、集合与有序集合,而且支持各种不同方式的排序,所以命令比较丰富,很容易混淆。
二、Redis 常用命令
1、工具命令
1)、redis-server
启动redis服务进程的工具命令
#指定配置文件启动服务redis-serverredis.conf#指定端口启动服务redis-server--port6379
2)、redis-cli
redis 客户端工具
#使用socket连接redis服务器redis-cli-s/tmp/redis.sock#不使用socket连接redis服务器redis-cli
3)、redis-benchmark
redis 的性能测试工具
#使用默认参数测试redis-benchmark#自定义参数测试redis-benchmark-n1000000--csv
4)、redis-check-dump
redis 检查修复本地数据文件工具
#redis-check-dumpdump.rdb
5)、redis-check-aof
redis 检查修复AOF日志文件工具
#redis-check-aofappendonly.aof
6)、redis-sentinel
redis 集群管理工具
2、通用命令
auth Redis认证命令,执行其他命令前,必须先进行认证(前提是在配置文件中设置了认证参数)
ping 测试客户端和服务器之间的联通,返回值为PONG,表示联通
config get * 获取所有配置参数
config set config_name config_value 设置配置参数值
info 返回服务器信息
exist 查看当前库中是否存在某个key
ttl 获取键的有效时长
expire 设置键的过期时间
persist key_name 移除某个键的过期时间
del 删除某个键
select n 切换到n的数据库,redis默认的数据库是0-15,共16个数据库
move key_name n 将当前库的键移动到其他数据库
type key_name 返回键的数据类型
dbsize 获取当前库中所有键的数量
key * 获取当前所有key(当键数量多是,会hang死,慎用)
flushdb 删除当前库中的所有key
flushall 删除所有库中的所有key
save 创建当前库的备份
bgsave 同save,但是是后台备份,不阻塞主进程
eval 执行lua脚本
3、类型相关命令
1)、STRING
set 添加键值对,多次设置会覆盖原来的值
get 获取键的值
incr/decr 自增/自减(前提是键值是整型)
incrby/decrby 指定步长增加减少(q前提是键值是整型)
strlen 获取键的长度
append 向指定键追加值,返回字符串长度
setnx 判断键是否存在,存在返回0,否则返回1,不会覆盖原来值
getrange 根据指定下标获取键的值
Demo:
127.0.0.1:6379>getnumber"20"127.0.0.1:6379>incrnumber(integer)21127.0.0.1:6379>decrnumber(integer)20127.0.0.1:6379>incrbynumber5(integer)25127.0.0.1:6379>appendnumberhello(integer)7127.0.0.1:6379>strlennumber(integer)7127.0.0.1:6379>setnxnumberhello(integer)0127.0.0.1:6379>getrangenumber05"25hell"
2)、LISTS
lpush 在列表前面添加一个或多个值
rpush 在列表后面添加一个或多个值
lrange 根据指定下标获取列表中的元素
lpop 获取并取出列表中的***个元素
llen 获取列表长度
Demo:
127.0.0.1:6379>lpushmylistsappleorangepear(integer)3127.0.0.1:6379>llenmylists(integer)3127.0.0.1:6379>lrangemylists0-11)"pear"2)"orange"3)"apple"127.0.0.1:6379>rpushmylistsbanana(integer)4127.0.0.1:6379>lrangemylists0-11)"pear"2)"orange"3)"apple"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
sadd 向集合中添加值
smembers 查看集合中的值
sismember 判断某元素是否是集合中元素
sunion 返回两个集合中的并集
sdiff 返回两个集合中的差集(将写在前面的集合作为参照)
sinter 返回两个集合中的交集
scard 返回集合中元素个数
srem 删除集合中指定值
Demo:
127.0.0.1:6379>saddmysetonetwothree(integer)3127.0.0.1:6379>saddmyset1tworedismysql(integer)3127.0.0.1:6379>smembersmyset1)"three"2)"two"3)"one"127.0.0.1:6379>smembersmyset11)"two"2)"mysql"3)"redis"127.0.0.1:6379>sdiffmysetmyset11)"three"2)"one"127.0.0.1:6379>sintermysetmyset11)"two"127.0.0.1:6379>sunionmysetmyset11)"two"2)"three"3)"mysql"4)"one"5)"redis"127.0.0.1:6379>scardmyset(integer)3127.0.0.1:6379>sismembermysetredis(integer)0127.0.0.1:6379>sremmysettwo(integer)1127.0.0.1:6379>smembersmyset1)"three"2)"one"
4)、SORTED SETS
zadd 将键插入有序集合,并指定顺序
zrange 取出指定顺序的元素
zscore 返回集合中的顺序
zcount 返回集合中score在给定区间的数量
zrem 删除集合中指定元素
zrank 返回名称key中原素的排名
Demo:
127.0.0.1:6379>zaddsset1one2two3three(integer)3127.0.0.1:6379>zaddsset3three(integer)0127.0.0.1:6379>zrangesset0-1withscores1)"one"2)"1"3)"two"4)"2"5)"three"6)"3"127.0.0.1:6379>zrankssetone(integer)0127.0.0.1:6379>zrankssettwo(integer)1127.0.0.1:6379>zcardsset(integer)3127.0.0.1:6379>zincrbysset2two"4"127.0.0.1:6379>zrangesset0-1withscores1)"one"2)"1"3)"three"4)"3"5)"two"6)"4"127.0.0.1:6379>zremssetthree(integer)1127.0.0.1:6379>zrangesset0-1withscores1)"one"2)"1"3)"two"4)"4"
5)、HASHES
hset 返回hash 域为指定值,如果key不存在,则先创建
hget 获取hash 域中指定的key值
hmset 同时批量设置多个域
hincrby 指定hash 域加上给定的值
hexists 指定field是否存在,存在返回1,否则返回2
hlen 返回指定hash 表中field中的数量
Demo:
127.0.0.1:6379>hsetusernamejack(integer)1127.0.0.1:6379>hgetusername"jack"127.0.0.1:6379>hsetnxusernamejack(integer)0127.0.0.1:6379>hmsetuser1namebobsexmanage11OK127.0.0.1:6379>hmgetuser1namesexage1)"bob"2)"man"3)"11"127.0.0.1:6379>hexistsuser1score(integer)0127.0.0.1:6379>hlenuser1(integer)3127.0.0.1:6379>hincrbyuser1age5(integer)16127.0.0.1:6379>hkeysuser11)"name"2)"sex"3)"age"127.0.0.1:6379>hdeluser1sex(integer)1127.0.0.1:6379>hgetalluser11)"name"2)"bob"3)"age"4)"16"
4、其他命令
1)、事务
multi 开启一个事务
exec 执行事务
discard 撤销事务
watch 监视数据库键,若发生改变,返回空
Demo:
127.0.0.1:6379>watch"csdn"OK127.0.0.1:6379>multiOK127.0.0.1:6379>setcsdnblobQUEUED127.0.0.1:6379>getcsdnQUEUED127.0.0.1:6379>exec1)OK2)"blob"
2)、复制
info replication 获取复制信息
slaveof 建立复制关系
sync 同步
3)、订阅发布
subscribe 订阅一个或多个频道
publish 向某一频道发送信息
关于打好Redis的基础需要学习哪些常用命令问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。