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

2018-02-05 10:29:04来源:http://database.51cto.com/art/201802/565880.htm作者:51CTO人点击

分享


一、背景介绍

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)21
127.0.0.1:6379>decrnumber
(integer)20
127.0.0.1:6379>incrbynumber5
(integer)25
127.0.0.1:6379>appendnumberhello
(integer)7
127.0.0.1:6379>strlennumber
(integer)7
127.0.0.1:6379>setnxnumberhello
(integer)0
127.0.0.1:6379>getrangenumber05
"25hell"

2)、LISTS

lpush 在列表前面添加一个或多个值


rpush 在列表后面添加一个或多个值


lrange 根据指定下标获取列表中的元素


lpop 获取并取出列表中的第一个元素


llen 获取列表长度


Demo:


127.0.0.1:6379>lpushmylistsappleorangepear
(integer)3
127.0.0.1:6379>llenmylists
(integer)3
127.0.0.1:6379>lrangemylists0-1
1)"pear"
2)"orange"
3)"apple"
127.0.0.1:6379>rpushmylistsbanana
(integer)4
127.0.0.1:6379>lrangemylists0-1
1)"pear"
2)"orange"
3)"apple"
4)"banana"
127.0.0.1:6379>lpopmylists
"pear"
127.0.0.1:6379>lsetmylists0four
OK
127.0.0.1:6379>lrangemylists0-1
1)"four"
2)"apple"
3)"banana"

3)、SETS

sadd 向集合中添加值


smembers 查看集合中的值


sismember 判断某元素是否是集合中元素


sunion 返回两个集合中的并集


sdiff 返回两个集合中的差集(将写在前面的集合作为参照)


sinter 返回两个集合中的交集


scard 返回集合中元素个数


srem 删除集合中指定值


Demo:


127.0.0.1:6379>saddmysetonetwothree
(integer)3
127.0.0.1:6379>saddmyset1tworedismysql
(integer)3
127.0.0.1:6379>smembersmyset
1)"three"
2)"two"
3)"one"
127.0.0.1:6379>smembersmyset1
1)"two"
2)"mysql"
3)"redis"
127.0.0.1:6379>sdiffmysetmyset1
1)"three"
2)"one"
127.0.0.1:6379>sintermysetmyset1
1)"two"
127.0.0.1:6379>sunionmysetmyset1
1)"two"
2)"three"
3)"mysql"
4)"one"
5)"redis"
127.0.0.1:6379>scardmyset
(integer)3
127.0.0.1:6379>sismembermysetredis
(integer)0
127.0.0.1:6379>sremmysettwo
(integer)1
127.0.0.1:6379>smembersmyset
1)"three"
2)"one"

4)、SORTED SETS

zadd 将键插入有序集合,并指定顺序


zrange 取出指定顺序的元素


zscore 返回集合中的顺序


zcount 返回集合中score在给定区间的数量


zrem 删除集合中指定元素


zrank 返回名称key中原素的排名


Demo:


127.0.0.1:6379>zaddsset1one2two3three
(integer)3
127.0.0.1:6379>zaddsset3three
(integer)0
127.0.0.1:6379>zrangesset0-1withscores
1)"one"
2)"1"
3)"two"
4)"2"
5)"three"
6)"3"
127.0.0.1:6379>zrankssetone
(integer)0
127.0.0.1:6379>zrankssettwo
(integer)1
127.0.0.1:6379>zcardsset
(integer)3
127.0.0.1:6379>zincrbysset2two
"4"
127.0.0.1:6379>zrangesset0-1withscores
1)"one"
2)"1"
3)"three"
4)"3"
5)"two"
6)"4"
127.0.0.1:6379>zremssetthree
(integer)1
127.0.0.1:6379>zrangesset0-1withscores
1)"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)1
127.0.0.1:6379>hgetusername
"jack"
127.0.0.1:6379>hsetnxusernamejack
(integer)0
127.0.0.1:6379>hmsetuser1namebobsexmanage11
OK
127.0.0.1:6379>hmgetuser1namesexage
1)"bob"
2)"man"
3)"11"
127.0.0.1:6379>hexistsuser1score
(integer)0
127.0.0.1:6379>hlenuser1
(integer)3
127.0.0.1:6379>hincrbyuser1age5
(integer)16
127.0.0.1:6379>hkeysuser1
1)"name"
2)"sex"
3)"age"
127.0.0.1:6379>hdeluser1sex
(integer)1
127.0.0.1:6379>hgetalluser1
1)"name"
2)"bob"
3)"age"
4)"16"

4、其他命令
1)、事务

multi 开启一个事务


exec 执行事务


discard 撤销事务


watch 监视数据库键,若发生改变,返回空


Demo:


127.0.0.1:6379>watch"csdn"
OK
127.0.0.1:6379>multi
OK
127.0.0.1:6379>setcsdnblob
QUEUED
127.0.0.1:6379>getcsdn
QUEUED
127.0.0.1:6379>exec
1)OK
2)"blob"

2)、复制

info replication 获取复制信息


slaveof 建立复制关系


sync 同步


3)、订阅发布

subscribe 订阅一个或多个频道


publish 向某一频道发送信息


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台