Redis:常用命令
跳到导航
跳到搜索
关于Redis
Remote Dictionary Server(Redis) 是一个开源的由Salvatore Sanfilippo使用ANSI C语言编写的key-value数据存储服务器。其值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型,所以它通常也被称为数据结构服务器。
- redis属于NoSQL数据库,NoSQL数据库叫非关系型数据库,(NoSQL = Not Only SQL),意即"不仅仅是SQL"。
- 数据库类型:
- key-value存储:“Berkeley DB”、“MemcacheDB”、“Redis”
- 文档存储:“MongoDB”、“CouchDB”
- 列存储:“Hbase”、“Cassandra”
redis的特点:
- redis足够简单和稳定
- 支持丰富的数据结构
- 内存存储读写性能优秀
- 提供持久化的支持
- 支持部分事务操作
下载安装
- 官网:“https://redis.io/”
- 下载:
- 安装:
- 解压:tar -zxvf redis-3.2.9.tar.gz
- 切换目录: cd redis-3.2.9,执行命令:make
- 将 src下的可执行文件复制到/usr/local/bin 目录下,再执行 make install
- 启动:(切换到 redis-3.2.9/src/ 目录执行命令)
- 后台启动:“./redis-server & ”
- 后台启动并输出日志到nohup.out文件:“nohup /usr/local/redis-3.2.9/src/redis-server &”
- 关闭:(结束进程:kill pid 或者 kill -9 pid)
- 切换到 redis-3.2.9/src/ 目录执行:“./redis-cli shutdown”
客户端
redis命令行客户端:
- redis-cli(Redis Command Line Interface)是Redis自带的基于命令行的Redis客户端,用于与服务端交互,我们可以使用该客户端来执行redis的各种命令。
- 直接连接redis (默认ip127.0.0.1,端口6379):“./redis-cli”
- 指定IP和端口连接redis:“./redis-cli -h 127.0.0.1 -p 6379”
redis远程客户端:
- Redis Desktop Manager
- 官网:https://redisdesktop.com/
- 远程连接redis需要修改redis主目录下的“redis.conf”配置文件:
- “bind ip”绑定ip注释掉;
- “protected-mode yes”保护模式改为no;
- phpRedisAdmin
- (需要本地安装php运行环境)
redis编程客户端(Java):(类似于数据库驱动)使用它提供的API就能访问服务器上的redis并对它进行各种操作。
- Jedis,redis的Java编程客户端,Redis官方首选推荐使用Jedis,jedis是一个很小但很健全的redis的java客户端
- jedis完全兼容redis 2.8.x and 3.x.x
- Jedis源码:https://github.com/xetorthio/jedis
- api文档:http://xetorthio.github.io/jedis/
- Lettuce:可伸缩线程安全的Redis客户端。多个线程可以共享同一个“RedisConnection”。它利用优秀netty NIO框架来高效地管理多个连接。
- redis的其他编程语言客户端:C、C++、C#、Erlang、Lua、Objective-C、Perl、PHP、Python、Ruby、Scala、Go,等40多种语言都有连接redis的编程客户端;
Redis基础
- “redis.conf”是Redis的配置文件;
- redis默认为16个库(默认自动使用0号库);
redis手册:
- redis英文版命令大全:“https://redis.io/commands”
- redis中文版命令大全:“http://redisdoc.com/”
基础命令:
- 验证安装:(redis-cli等链接后)输入“ping”(redis返回“PONG”表示服务运行正常);
- 切换库命令:“select <db>”;
- 删除所有库的数据:“flushall”;
- 删除当前库的数据:“flushdb”;
- 获得redis的所有配置值:“config get *”;
- redis-cli退出当前redis连接:“exit”或“quit”;
- 查看当前数据库中key的数目:“dbsize”;
- 查看redis服务器的统计信息:“info”;
1 + 5 命令:
- 1种key操作:“key”命令,redis以key-value存储数据,所有的操作均为对key的操作:
命令 | 说明 |
---|---|
keys * | 列出所有的key |
exists <key> | 检查某个key是否存在 |
move <key> db | 将当前库的key移动到给定的库db中,比如:move k1 2 |
expire <key> seconds | 设置key的值的过期时间 |
ttl <key> | ttl(time to live)查看key还有多少秒过期,-1永不过期,-2已过期或key不存在 |
type <key> | 查看key所储存的值的类型 |
del <key> | 删除key |
- 5种数据类型操作:
数据类型 | 说明 |
---|---|
string | 字符串类型 |
hash | 哈希类型 |
list | 列表类型 |
set | 集合类型 |
zset(sorted set) | 有序集合类型 |
Java操作redis
- jedis的jar包依赖Maven配置:(jedis也依赖“Apache Commons Pool 2 2.0”)
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
- 使用jedis:
public static void main(String[] args) { //连接Redis服务器 Jedis jedis = new Jedis("192.168.1.103", 6379); //查看服务是否运行正常 System.out.println("服务正在运行: " + jedis.ping()); }