redis 五种数据类型的使用场景

浅谈 Redis 数据库的键值设计

redis命令文档:
http://doc.redisfans.com/index.html

1. redis查看当前所有的key

KEYS *

模糊匹配key
keys 模糊字符串*

如:keys SOCIA:T_SOCIA_ALBUM_ALBUM:2*

 

2. 查看当前redis的配置信息

CONFIG GET *

3. MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

强制停止redis快照导致,redis运行用户没有权限写rdb文件或者磁盘空间满了,解决办法:

config set stop-writes-on-bgsave-error no

例如:

set 'name' 'shenhui'
-MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.
config set stop-writes-on-bgsave-error no
+OK
set 'name' 'shenhui'
+OK

4. redis 127.0.0.1:6379>

  CONFIG SET logfile "/var/log/redis/redis-server.log"(error) ERR Unsupported CONFIG parameter: logfile

  logfile 不能通过set动态设置

5.(error) OOM command not allowed when used memory >

设置了maxmemory的选项,redis内存使用达到上限。

可以通过设置LRU算法来删除部分key,释放空间。

默认是按照过期时间的,如果set时候没有加上过期时间就会导致数据写满maxmemory。

如果不设置maxmemory或者设置为0 64位系统不限制内存,32位系统最多使用3GB内存。

volatile-lru -> 根据LRU算法生成的过期时间来删除。

allkeys-lru -> 根据LRU算法删除任何key。

volatile-random -> 根据过期设置来随机删除key。

allkeys->random -> 无差别随机删。

volatile-ttl -> 根据最近过期时间来删除(辅以TTL)

noeviction -> 谁也不删,直接在写操作时返回错误。

6. reids日志位置logfile 日志记录方式,默认值为stdout,如果设置为stdout且以守护进程方式运行,那么日志会被重定向到/dev/null,也就是不记日志。

7.Redis官方文档对VM的使用建议:

当你的key很小而value很大时,使用VM的效果会比较好.因为这样节约的内存比较大.

当你的key不小时,可以考虑使用一些非常方法将很大的key变成很大的value,比如你可以考虑将key,value组合成一个新的value.

最好使用linux ext3 等对稀疏文件支持比较好的文件系统保存你的swap文件.

vm-max-threads这个参数,可以设置访问swap文件的线程数,设置最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的.可能会造成比较长时间的延迟,但是对数据完整性有很好的保证.

有了VM功能,Redis终于摆脱了受内存容量限制的噩梦了,似乎我们可以称其为Redis数据库了,我们还可以想象又有多少新的用法可以产生.当然,希望这一功能不会对Redis原有的非常牛B的内存存储性能有所影响.

8. redis修改持久化路径和日志路径

vim redis.conf

logfile /data/redis_cache/logs/redis.log #日志路径

dir /data/redis_cache #持久化路径,修改后 记得要把dump.rdb持久化文件拷贝到/data/redis_cache下

先杀掉redis,拷贝dump.rdb,启动

9. 清redis缓存

./redis-cli    #进入
dbsize
flushall #执行
exit

10. 删除redis当前数据库中的所有Key

flushdb

11.删除redis所有数据库中的key

flushall

【2016-12-19日更新】

#切换到redis客户端目录
F:
cd redis-2.8.12


#连接redis远程服务器
redis-cli.exe -h 192.168.6.107 -p 16680
redis-cli.exe -h 192.168.6.107 -p 16681


#在16680上查询查不到,提示去16682上查询
192.168.6.107:16680> get rediskey
(error) MOVED 12480 192.168.6.107:16682


#在16682上查询,结果为4
192.168.6.107:16682> get rediskey
"4"


常用命令


【HASH】
#获取Hash类型的值
HGETALL rediskey


【STRING】
#获取String类型的值
GET rediskey

【LIST】

list主要操作函数小结
#获取list长度
LLEN rediskey

#获取list的前N-1个元素
LRANGE rediskey 0 N


【ZSET】
#获取zset类型的正序N-1个member-不带score
ZRANGE rediskey 0 N


#获取zset类型的正序N-1个member和score
ZRANGE rediskey 0 N WITHSCORES


#获取zset类型的倒序N-1个member-不带score
ZREVRANGE rediskey 0 N


#获取zset类型的正序N-1个member和score
ZREVRANGE rediskey 0 N WITHSCORES


#获取zset中某个member的score
ZSCORE rediskey member


#更新zset中某个 member 的score
ZINCRBY rediskey 步长 member


#删除zset中某个 member
ZREM rediskey member


[redis] Redis 常用命令的更多相关文章

  1. Jedis对Redis的常用命令操作

    本篇主要总结一些Jedis对Redis的常用命令操作: 1.对key操作命令 2.对String操作命令 3.对List操作命令 4.对Set操作命令 5.对Hash操作命令 6.排序操作指令 一.项 ...

  2. Linux下安装redis以及常用命令

    https://blog.csdn.net/zgf19930504/article/details/51850594 安装: 1.获取redis资源 wget http://download.redi ...

  3. 05_NoSQL数据库之Redis数据库:Redis的常用命令,键值相关命令和服务器相关命令

     Redis常用命令 Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以再Linux终端使用. 键值相关命令: Keys:返回满足给定pattern的所有key 用表达式*表 ...

  4. 【redis】常用命令

    三.常用命令    1)连接操作命令    quit:关闭连接(connection)    auth:简单密码认证    help cmd: 查看cmd帮助,例如:help quit         ...

  5. Redis(2):常用命令详解

    redis命令不区分大小写 通用命令:1. 获得符合规则的键名列表: keys pattern   其中pattern符合glob风格  ? (一个字符) * (任意个字符) [] (匹配其中的任意一 ...

  6. Redis的常用命令与Java整合及高级应用篇

    一,redis是什么? ​ 首先数据库分为关系型数据库和非关系型数据库,关系型数据库是采用关系模型来组织数据的数据库,简单来说就是二维表格模型,同时保证事务的一致性. ​ 相反非关系型数据库采用key ...

  7. centos7 yum安装redis及常用命令

    redis是什么 Redis是一种基于内存的数据结构存储,可持久化的日志型.Key-Value数据库.使用关系型数据库的站点达到一定并发量的时候,往往在磁盘IO上会有瓶颈,这时候配合redis就有一定 ...

  8. Spring+SpringMVC+MyBatis+easyUI整合进阶篇(九)Linux下安装redis及redis的常用命令和操作

    redis简介 Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis与其他key-value缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存 ...

  9. Redis简介+常用命令

    Redis=REmote DIctionary Server Redis是一个使用C语言编写的开源数据库,是高性能的key-value数据库,是内存数据库,支持数据持久化. Redis常用数据类型: ...

  10. Redis 实战 —— 04. Redis 数据结构常用命令简介

    字符串 P39 Redis 的字符串是一个有字节组成的序列,可以存储以下 3 种类型的值:字节串(byte string).整数.浮点数. 在需要的时候, Redis 会将整数转换成浮点数.整数的取值 ...

随机推荐

  1. js计时器的问题

    不说话直接上代码了 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> & ...

  2. Error 18000 during outlook 2011 rebuild

    Thanks Rob 88 Via:https://discussions.apple.com/message/23726703#23726703 1. Make a duplicate copy o ...

  3. SQLServer使用表值参数,高性能批量插入数据

    记得前段时间帮同事写了个解析账号并入库的小工具,来批量导入账号信息,账号量相当大,程序每读取一条记录便执行一次insert来插入数据,整整跑了一下午才把账号全部入库. 今天又接到同事类似的需求,不过这 ...

  4. Task<TResult>的使用

    https://msdn.microsoft.com/en-us/library/dd321424(v=vs.110).aspx Represents an asynchronous operatio ...

  5. [数据结构与算法]栈Stack的多种实现

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. [JAVA设计模式]第一部分:接口、抽象类、设计原则

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. CUBRID学习笔记 13 日志文件

    欢迎转载 ,转载时请保留作者信息.本文版权归本人所有,如有任何问题,请与我联系wang2650@sohu.com . 过错 CUBRID Broker Log Files  可以理解为数据库中间件日志 ...

  8. Jenkins插件及 测试源码

    Jenkins 插件: https://updates.jenkins-ci.org/download/plugins/ 小米的一份android源码,测试工具,用于抢红包: https://gith ...

  9. vector的插入、lower_bound、upper_bound、equal_range实例

    对于这几个函数的一些实例以便于理解: #include <cstdlib> #include <cstdio> #include <cstring> #includ ...

  10. iOS - OC 异常处理

    1.@try 语句 @try { // Code that can potentially throw an exception 可能会抛出异常的代码块 statement . . . } @catc ...