ITPub博客

首页 > 数据库 > NoSQL > redis 基础命令

redis 基础命令

原创 NoSQL 作者:bestpaydata 时间:2016-01-04 09:14:00 0 删除 编辑


编者:Matlon

一、Redis 常用命令
1工具命令
1、redis-server

启动redis服务进程的工具命令

#指定配置文件启动服务

redis-server redis.conf


#指定端口启动服务

redis-server --port 6379


2、redis-cli

redis 客户端工具

#使用socket连接redis服务器

redis-cli -s /tmp/redis.sock


#不使用socket连接redis服务器

redis-cli


3、redis-benchmark

redis 的性能测试工具

#使用默认参数测试

redis-benchmark

#自定义参数测试

redis-benchmark -n 1000000 --csv


4、redis-check-dump

redis 检查修复本地数据文件工具

# redis-check-dump dump.rdb


5、redis-check-aof

redis 检查修复AOF日志文件工具

# redis-check-aof appendonly.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
类型相关命令

1STRING

set                                                             添加键值对,多次设置会覆盖原来的值
get                                                             获取键的值
incr/decr                                                     自增/自减(前提是键值是整型)
incrby/decrby                                              指定步长增加减少(q前提是键值是整型)
strlen                                                          获取键的长度
append                                                       向指定键追加值,返回字符串长度
setnx                                                          判断键是否存在,存在返回0,否则返回1,不会覆盖原来值
getrange                                                    根据指定下标获取键的值

Demo:

127.0.0.1:6379> get number
"20"
127.0.0.1:6379> incr number
(integer) 21
127.0.0.1:6379> decr number
(integer) 20
127.0.0.1:6379> incrby number 5
(integer) 25
127.0.0.1:6379> append number hello
(integer) 7
127.0.0.1:6379> strlen number
(integer) 7
127.0.0.1:6379> setnx number hello
(integer) 0
127.0.0.1:6379> getrange number 0 5
"25hell"

2LISTS

lpush 在列表前面添加一个或多个值
rpush 在列表后面添加一个或多个值
lrange 根据指定下标获取列表中的元素
lpop 获取并取出列表中的第一个元素
llen 获取列表长度

Demo:

127.0.0.1:6379> lpush mylists apple orange pear
(integer) 3
127.0.0.1:6379> llen mylists
(integer) 3
127.0.0.1:6379> lrange mylists 0 -1
1) "pear"
2) "orange"
3) "apple"
127.0.0.1:6379> rpush mylists banana
(integer) 4
127.0.0.1:6379> lrange mylists 0 -1
1) "pear"
2) "orange"
3) "apple"
4) "banana"
127.0.0.1:6379> lpop mylists
"pear"
127.0.0.1:6379> lset mylists 0 four
OK
127.0.0.1:6379> lrange mylists 0 -1
1) "four"
2) "apple"
3) "banana"

3SETS

sadd                                                                 向集合中添加值
smembers                                                         查看集合中的值
sismember                                                        判断某元素是否是集合中元素
sunion                                                              返回两个集合中的并集
sdiff                                                                 返回两个集合中的差集(将写在前面的集合作为参照)
sinter                                                               返回两个集合中的交集
scard                                                               返回集合中元素个数
srem                                                                删除集合中指定值

Demo:
127.0.0.1:6379> sadd myset one two three
(integer) 3
127.0.0.1:6379> sadd myset1 two redis mysql
(integer) 3
127.0.0.1:6379> smembers myset
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> smembers myset1
1) "two"
2) "mysql"
3) "redis"
127.0.0.1:6379> sdiff myset myset1
1) "three"
2) "one"
127.0.0.1:6379> sinter myset myset1
1) "two"
127.0.0.1:6379> sunion myset myset1
1) "two"
2) "three"
3) "mysql"
4) "one"
5) "redis"
127.0.0.1:6379> scard myset
(integer) 3
127.0.0.1:6379> sismember myset redis
(integer) 0
127.0.0.1:6379> srem myset two
(integer) 1
127.0.0.1:6379> smembers myset
1) "three"
2) "one"

4SORTED SETS

zadd                      将键插入有序集合,并指定顺序
zrange                   取出指定顺序的元素
zscore                  返回集合中的顺序
zcount                 返回集合中score在给定区间的数量
zrem                    删除集合中指定元素
zrank                   返回名称key中原素的排名


Demo:

127.0.0.1:6379> zadd sset 1 one 2 two 3 three
(integer) 3
127.0.0.1:6379> zadd sset 3 three
(integer) 0
127.0.0.1:6379> zrange sset 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "2"
5) "three"
6) "3"
127.0.0.1:6379> zrank sset one
(integer) 0
127.0.0.1:6379> zrank sset two
(integer) 1
127.0.0.1:6379> zcard sset
(integer) 3
127.0.0.1:6379> zincrby sset 2 two
"4"
127.0.0.1:6379> zrange sset 0 -1 withscores
1) "one"
2) "1"
3) "three"
4) "3"
5) "two"
6) "4"
127.0.0.1:6379> zrem sset three
(integer) 1
127.0.0.1:6379> zrange sset 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "4"


5HASHES

hset                                               返回hash 域为指定值,如果key不存在,则先创建
hget                                              获取hash 域中指定的key值
hmset                                            同时批量设置多个域
hincrby                                         指定hash 域加上给定的值
hexists                                           指定field是否存在,存在返回1,否则返回2
hlen                                               返回指定hash 表中field中的数量

Demo:

127.0.0.1:6379> hset user name jack
(integer) 1
127.0.0.1:6379> hget user name
"jack"
127.0.0.1:6379> hsetnx user name jack
(integer) 0
127.0.0.1:6379> hmset user1 name bob sex man age 11
OK
127.0.0.1:6379> hmget user1 name sex age
1) "bob"
2) "man"
3) "11"
127.0.0.1:6379> hexists user1 score
(integer) 0
127.0.0.1:6379> hlen user1
(integer) 3
127.0.0.1:6379> hincrby user1 age 5
(integer) 16
127.0.0.1:6379> hkeys user1
1) "name"
2) "sex"
3) "age"
127.0.0.1:6379> hdel user1 sex
(integer) 1
127.0.0.1:6379> hgetall user1
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> set csdn blob
QUEUED
127.0.0.1:6379> get csdn
QUEUED
127.0.0.1:6379> exec
1) OK
2) "blob"

2复制

info replication                          获取复制信息
slaveof                                     建立复制关系
sync                                        同步

3订阅发布


subscribe                      订阅一个或多个频道
publish                          向某一频道发送信息


微信扫一扫
关注该公众号


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30109892/viewspace-1970510/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-01-19

  • 博文量
    126
  • 访问量
    1054948