redis的常用操作
2016-10-31 14:19
113 查看
安装redis
1 下载并解压redistar -zxvf redis*.*
2 编译 进入redis目录
make
3 启动服务
进入redis/src/ src/redis-server & #在后台运行
4 使用redis客户端:
src/redis-cli
5 关闭redis
ps -ef |grep redis #查找进程
kill -s 9 +pid 杀死进程
官方关闭命令:
src/redis-cli -n 6379 shutdown
redis简单使用。
1 连接操作命令
quit:关闭连接(connection) auth:简单密码认证 help cmd: 查看cmd帮助,例如:help quit
2 持久化
save:将数据同步保存到磁盘 bgsave:将数据异步保存到磁盘 lastsave:返回上次成功将数据保存到磁盘的Unix时戳 shutdown:将数据同步保存到磁盘,然后关闭服务
3 远程服务控制
info:提供服务器的信息和统计 monitor:实时转储收到的请求 slaveof:改变复制策略设置 config:在运行时配置Redis服务器
4 对key操作的命令
exists(key):确认一个key是否存在 如果存在返回 1 不存在返回 0 del(key):删除一个key 删除一个key 删除成功返回1 删除失败返回0 type(key):返回值的类型 返回一个key的类型 keys(pattern):返回满足给定pattern的所有key randomkey:随机返回key空间的一个 keyrename(oldname, newname):重命名key dbsize:返回当前数据库中key的数目 expire:设定一个key的活动时间(s) 单位是秒 ttl:获得一个key的活动时间 单位是秒 超时返回-2 select(index):按索引查询 切换仓库。 默认是0 编号0-15 move(key, dbindex): 移动当前数据库中的key到dbindex数据库 flushdb:删除当前选择数据库中的所有key flushall:删除所有数据库中的所有key
5 String
set(key, value):给数据库中名称为key的string赋予值value --设置中文 ./redis-cli --raw get(key):返回数据库中名称为key的string的value getset(key, value):给名称为key的string赋予上一次的value 为key设置新值并返回旧值 mget(key1, key2,…, key N):返回库中多个string的value mget name age 丁春秋 19 setnx(key, value):添加string,名称为key,值为value 如果原来key存在 不能覆盖返回0 如果不存在可以设置。 setex(key, time, value):向库中添加string,设定过期时间time mset(key N, value N):批量设置多个string的值 msetnx(key N, value N):如果所有名称为key i的string都不存在 incr(key):名称为key的string增1操作 返回增加后的值 incrby(key, integer):名称为key的string增加integer decr(key):名称为key的string减1操作 decrby(key, integer):名称为key的string减少integer append(key, value):名称为key的string的值附加value substr(key, start, end):返回名称为key的string的value的子串
6 List
rpush(key, value):在名称为key的list尾添加一个值为value的元素 lpush(key, value):在名称为key的list头添加一个值为value的 元素 llen(key):返回名称为key的list的长度 lrange(key, start, end):返回名称为key的list中start至end之间的元素 ltrim(key, start, end):截取名称为key的list lindex(key, index):返回名称为key的list中index位置的元素 lset(key, index, value):给名称为key的list中index位置的元素赋值 lrem(key, count, value):删除count个key的list中值为value的元素 lpop(key):返回并删除名称为key的list中的首元素 rpop(key):返回并删除名称为key的list中的尾元素 blpop(key1, key2,… key N, timeout):lpop命令的block版本。 brpop(key1, key2,… key N, timeout):rpop的block版本。 rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部
7 Set
sadd(key, member):向名称为key的set中添加元素member srem(key, member) :删除名称为key的set中的元素member spop(key) :随机返回并删除名称为key的set中一个元素 smove(srckey, dstkey, member) :移到集合元素 scard(key) :返回名称为key的set的基数 sismember(key, member) :member是否是名称为key的set的元素 sinter(key1, key2,…key N) :求交集 sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合 sunion(key1, (keys)) :求并集 sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合 sdiff(key1, (keys)) :求差集 sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合 smembers(key) :返回名称为key的set的所有元素 srandmember(key) :随机返回名称为key的set的一个元素
8 Hash
hset(key, field, value):向名称为key的hash中添加元素field hget(key, field):返回名称为key的hash中field对应的value hmget(key, (fields)):返回名称为key的hash中field i对应的value hmset(key, (fields)):向名称为key的hash中添加元素field hincrby(key, field, integer):将名称为key的hash中field的value增加integer hexists(key, field):名称为key的hash中是否存在键为field的域 hdel(key, field):删除名称为key的hash中键为field的域 hlen(key):返回名称为key的hash中元素个数 hkeys(key):返回名称为key的hash中所有键 hvals(key):返回名称为key的hash中所有键对应的value hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value
事务:
Redis 事务
Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:
事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
一个事务从开始到执行会经历以下三个阶段:
开始事务。
命令入队。
执行事务。
实例
以下是一个事务的例子, 它先以 MULTI 开始一个事务, 然后将多个命令入队到事务中, 最后由 EXEC 命令触发事务, 一并执行事务中的所有命令:
redis 127.0.0.1:6379> MULTI
OK
redis 127.0.0.1:6379> SET book-name "Mastering C++ in 21 days" QUEUED redis 127.0.0.1:6379> GET book-name QUEUED redis 127.0.0.1:6379> SADD tag "C++" "Programming" "Mastering Series" QUEUED redis 127.0.0.1:6379> SMEMBERS tag QUEUED redis 127.0.0.1:6379> EXEC 1) OK 2) "Mastering C++ in 21 days" 3) (integer) 3 4) 1) "Mastering Series" 2) "C++" 3) "Programming"
Redis 事务命令
下表列出了 redis 事务的相关命令:
序号 命令及描述 1 DISCARD 取消事务,放弃执行事务块内的所有命令。 2 EXEC 执行所有事务块内的命令。 3 MULTI 标记一个事务块的开始。 4 UNWATCH 取消 WATCH 命令对所有 key 的监视。 5 WATCH key [key ...] 监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。
Redis 连接
Redis 连接命令主要是用于连接 redis 服务。
实例
以下实例演示了客户端如何通过密码验证连接到 redis 服务,并检测服务是否在运行: redis 127.0.0.1:6379> AUTH "password" OK redis 127.0.0.1:6379> PING PONG
Redis 连接命令
下表列出了 redis 连接的基本命令: 序号 命令及描述 1 AUTH password 验证密码是否正确 2 ECHO message 打印字符串 3 PING 查看服务是否运行 4 QUIT 关闭当前连接 5 SELECT index 切换到指定的数据库
Redis 数据备份与恢复
Redis SAVE 命令用于创建当前数据库的备份。 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实例 redis 127.0.0.1:6379> SAVE OK 该命令将在 redis 安装目录中创建dump.rdb文件。 恢复数据 如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。获取 redis 目录可以使用 CONFIG 命令,如下所示: redis 127.0.0.1:6379> CONFIG GET dir 1) "dir" 2 4000 ) "/usr/local/redis/bin" 以上命令 CONFIG GET dir 输出的 redis 安装目录为 /usr/local/redis/bin。 Bgsave 创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。 实例 127.0.0.1:6379> BGSAVE Background saving started
Redis 安全
我们可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让你的 redis 服务更安全。
实例
我们可以通过以下命令查看是否设置了密码验证: 127.0.0.1:6379> CONFIG get requirepass 1) "requirepass" 2) "" 默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 redis 服务。 你可以通过以下命令来修改该参数: 127.0.0.1:6379> CONFIG set requirepass "runoob" OK 127.0.0.1:6379> CONFIG get requirepass 1) "requirepass" 2) "runoob" 设置密码后,客户端连接 redis 服务就需要密码验证,否则无法执行命令。 语法 AUTH 命令基本语法格式如下: 127.0.0.1:6379> AUTH password 实例 127.0.0.1:6379> AUTH "runoob" OK 127.0.0.1:6379> SET mykey "Test value" OK 127.0.0.1:6379> GET mykey "Test value"
相关文章推荐
- redis常用操作
- redis常用操作
- php操作redis常用方法源代码
- redis 常用操作命令
- redis常用操作
- php-redis常用操作
- redis集群及常用的操作命令
- ServiceStack.Redis常用操作 - 事务、并发锁
- 30个php操作redis常用方法代码例子
- Redis介绍及常用命令 ---主要是命令行操作
- Redis常用数据结构和操作
- ServiceStack.Redis常用操作 - 事务、并发锁
- ServiceStack.Redis常用操作 - 事务、并发锁
- Redis入门-技术数据类型常用操作
- Redis集群常用操作方式
- Redis数据结构型数据库及其常用操作
- ServiceStack.Redis常用操作 - 事务、并发锁
- 30个php操作redis常用方法代码例子
- 30 个 php 操作 redis 常用方法代码例子
- 30个php操作redis常用方法代码例子