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. java properties读取与设值

    import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream; ...

  2. BZOJ 3589 动态树(子树操作,链查询)

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3589 题意:给出一棵有根树,两种操作:(1)以u为根的子树所有节点权值加上一个数字 ...

  3. Map Columns From Different Tables and Create Insert and Update Statements in Oracle Forms

    This is one of my most needed tool to create Insert and Update statements using select or alias from ...

  4. Using Pre-Form Trigger In Oracle Forms

    Pre-Form trigger in Oracle Forms fires during the form start-up, before forms navigates to the first ...

  5. 1.mybatis简介

    mybatis简介 MyBatis 是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为My ...

  6. Codeforces Round #376 (Div. 2) C. Socks bfs

    C. Socks time limit per test 2 seconds memory limit per test 256 megabytes input standard input outp ...

  7. javascript权威指南笔记--javascript语言核心(二)

    1.函数作用域:在函数内声明的所有变量在函数体内始终是可见的.这意味着在变量声明之前甚至已经可用. *“声明提前”:javascript函数里声明的所有变量(但不涉及赋值)都被提前至函数的顶部. fu ...

  8. Linux基础※※※※如何使用Git in Linux(一)

    参考资料: 1. https://www.linux.com/learn/tutorials/796387-beginning-git-and-github-for-linux-users/ 2. h ...

  9. LINQ之路 1: LINQ介绍

    LINQ是.NET Framework 3.5的新特性,其全称是 Language Integrated Query,即语言集成查询,是指将查询功能和语言结合起来.从而为我们提供一种统一的方式,让我们 ...

  10. 转 C编译: 使用gdb调试

    C编译: 使用gdb调试   作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! gdb是the GNU Debugger的简称.它是 ...