Redis键值设计(转载)】的更多相关文章

参考资料:https://blog.csdn.net/iloveyin/article/details/7105181 丰富的数据结构使得redis的设计非常的有趣.不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与.redis的DBA需要熟悉数据结构,并能了解使用场景. 下面举一些常见适合kv数据库的例子来谈谈键值的设计,并与关系型数据库做一个对比,发现关系型的不足之处. 用户登录系统 记录用户登录信息的一个系统, 我…
1.1. redis键值操作 1.1.1. keys patten 查询相应的key 可以精确的查,也可以模糊的查 1.1.1.1. 通配符:* ? [] 在redis里,模糊查询key的时候有3个通配符可以用:* ? [] * 通配任意多个字符 ?通配单个字符 [] 通配[]内的某一个字符 127.0.0.1:6379> keys * 1) "site" 2) "animal" 127.0.0.1:6379> keys a* 1) "anim…
redis 键值对 有效期设置redis中可以使用expire命令设置一个键的生存时间, 到时间后redis会自动删除它<-----> 类比于javaweb系统临时数据 过期删除功能 expire 设置失效时间(单位/秒)persist 取消失效时间 ttl/pttl(单位为 秒/毫秒) 查看键的剩余时间 返回三种值 -2(健已经不存在了)  -1(表示永久有效)  大于0的数(还有多少有效时间) pexpire设置失效时间(单位/毫秒) expireat [key] unix时间戳13518…
丰富的数据结构使得redis的设计非常的有趣.不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与.redis的DBA需要熟悉数据结构,并能了解使用场景. 下面举一些常见适合kv数据库的例子来谈谈键值的设计,并与关系型数据库做一个对比,发现关系型的不足之处. 用户登录系统 记录用户登录信息的一个系统, 我们简化业务后只留下一张表. 关系型数据库的设计 mysql> select * from login; +-------…
add by zhj: 关系数据库表的一条记录可以映射成Redis中的一个hash类型,其实数据库记录本来就是键值对.这样,要比本文中的键设计用更少的键,更节省内存,因为每个键除了它的键值占用内存外,还额外占用一定的内存. 原文:http://www.hoterran.info/redis_kv_design 丰富的数据结构使得redis的设计非常的有趣.不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与.redis的D…
到目前为止,Redis 支持的键值数据类型如下: 字符串(String) 哈希(Map) 列表(list) 集合(sets) 有序集合(sorted sets)   1. String 字符串类型 string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 . string类型是Redis最基本的数据类型,一个键最大能存储512MB. String 命令: 赋值与取值 set…
1.Redis的安装以及客户端连接 安装:apt-get install redis-server 卸载:apt-get purge --auto-remove redis-server 启动:redis安装之后默认会自动启动,但是也可以手动启动,service redis-server start 停止:service redis-server stop 客户端连接,一种方式是使用python等语言去连接,还可以使用redis-cli 2.Redis的字符串以及过期时间 3.Redis的列表操…
我们可以将Redis中的Hashes类型看成具有String Key和String Value的键值对容器.类似python中的dict,javascript的jaon,java 的map,每一个Hash可以存储4294967295个键值对. # encoding:utf-8 import redis import time def main(): """ redis-cli -h 127.0.0.1 -a test321 """ redis_h…
1.首先启用redis通知功能(ubuntu下操作):编辑/etc/redis/redis.conf文件,添加或启用以下内容(过期通知): notify-keyspace-events Ex 或者登陆redis-cli之后,输入以下命令: config set notify-keyspace-events Ex 更多通知详见:http://redis.io/topics/notifications#configuration 2.Java Spring中配置监听 接口类: import java…
LAMP+ redis 架构图: 安装phpredis扩展 Php主配置文件引入redis库文件 Redis扩展 // 对httpd php扩展连接指定redis服务器…
业务逻辑:批量设置redis中手机号的验证码为888888: 准备shell脚本如下:将18888888100~18888888110的手机号验证码设置为888888: #!/bin/bash ;i<;i++)) do redis-cli -c -h >> phone.log done 在Linux中运行步骤: 1.vim phone.sh 2.复制上面脚本到该文件中 3.在vim中:wq命令然后回车,保存并退出vim; 4.赋予该文件可执行权限:chmod +x phone.sh   …
Redis键值相关命令                                                                                                                                   keys:返回满足给定pattern的所有key.(用法:keys pattern表达式) exists:确认一个key是否存在.(用法:exists key) del:删除一个key.(用法:del key) ex…
Redis 提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在 Linux 终端使用. 1. 键值相关命令: 2. 服务器相关命令 键值相关命令 ① keys 命令 返回满足给定 pattern 的所有 key. [例] > keys * ) "time" ) "list4" ) "list1" ) "email" ) "age" ) "myset6" ) "…
|-Jedis 普通方式 |-JedisPool 连接池方式(需要引入pool相关jar) |-Jedis 分布式 (需要引入pool相关jar) 引入jedis2.7.0和commons.pool2的相关jar包 Jedis简单实例 只要new一个Jedis对象,就能做redis相关操作了. import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List…
(转载)http://hi.baidu.com/syxrrrr/item/7dfb2387343ce0874414cfdd /* * 合并数据,如果键值相等其值相加 * @param array $descs * @param array $json_wares */ public static function getArrayMerge($descs, $json_wares) { if (is_array($descs) && is_array($json_wares)) { $ar…
在PHP上使用Redis 给多个键值进行自增,示例如下: $set['money'] = $this->redis->hIncrByFloat($key, $hour .'_money', $data['money']); $set['ip'] = $this->redis->hIncrBy($key, $hour .'_ip', $data['ip']); $set['uv'] = $this->redis->hIncrBy($key, $hour .'_uv', $…
 Redis常用命令 Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以再Linux终端使用. 键值相关命令: Keys:返回满足给定pattern的所有key 用表达式*表示取出所有的key 127.0.0.1:6379> keys * 1) "age" 2) "name" 3) "age2" 127.0.0.1:6379> keys a* 1) "age" 2) "age2&…
-------------------------------------------------------------------------------------- String(字符串):最简单的数据类型. set age 18 ( set age 18 ex 5 ) # 设置过期时间5秒 setex age 5 18   # 效果同上, 使用 ttl age 可以查看剩余有效时间 psetex age 5000 18  # 同上,只是以毫秒为单位设置key的过期时间 ( set ag…
Redis提供了丰富的命令对数据库和各种数据类型进行操作,这些命令可以在Linux 终端使用.在编程时,比如各类语言包,这些命令都有对应的方法. 键值命令 服务器命令 获取数据库中所有键名 >keys *     获取所有键名(*星号匹配任意字符)>keys nam*  获取所有以“name”开头的键名>keys nam*g 获取所有以“name”开头,并以“g”结尾的键名 测试服务器连通性 >pingPONG服务器连接成功返回PONG 判断数据库中是否存在某个键 >exis…
前言 redis安装完毕后开始使用redis,先熟悉命令行操作. redis数据的类型 键:redis的所有的键都是string类型: 值:五种类型 string:字符串类型:一个string最大可以储存512MB的数据,其可以储存任何对象: hash:散列,用来存储对象,key代表对象,field代表属性 set:集合类型,无序的集合,元素为string类型,不可重复: list:列表类型,一个链表,其元素类型属于string,按照插入的顺序排序 zset:有序集合类型,元素为string,不…
服务端 启动redis服务 { // -a:指定密码 -h:指定主机 -p:指定端口 } //让redis 服务中断崩溃 //保存和关闭 //后台备份 //设置登录密码 //redis-benchmark :性能测试 Redis客服端 //启动 //列出客服端 //杀死 Db 切换: 注:0#faied  1#successful Key-vlaue: //del :删除键 //Exists :判断键是不是存在 //rename :重命名键 // dump:十六进制序列化键值 // keys:键…
1.启动两个 cmd,一个用于打开服务,一个用于运行客户端. 详细步骤可见上一篇文章 2.下载nuget的 ServiceStack.Redis;  ,并在using中引用 ,详细步骤可见上一篇文章 3.在 cmd上 get,set 键值 4.在vs上 get,set键值 ,代码如下. 其中 Key_1 是在 cmd中  set值的,vs直接可以get值 Key_2 是在 vs中set值, 也在vs中 get值. 5.执行结果如下…
Centos7.2下安装redis&通用键值命令 Centos7.2下安装redis 官方网站:https://redis.io/ 1.进入/usr/local/src/目录 cd /usr/local/src/ 2.下载最新版或者最新stable版 wget http://download.redis.io/releases/redis-5.0.5.tar.gz 3.解压并进入目录 tar xzf redis-.tar.gz cd redis- 4.不用配置,直接make make 注:如果是…
key-value键值型数据库:Redis redis Redis是in-memory型(内存型)的键值数据库,数据在磁盘上是持久的,键类型是字符串,值类型是字符串.字符串集合(Set).sorted set.字符串列表(List).哈希(Hash)等. 其中,Hash类型是一种字符串为键.字符串为值的键值对集合,类似键值类型都为字符串的Map. 使用场景: 数据可全部放入内存 频繁访问数据 redis-server使用snapshot(快照)机制进行数据持久化,这种机制是不时地遍历in-mem…
一直想记录工作中遇到的问题和解决的方法,奈何没有找到一方乐土,最近经常反思,是否需要记录平时的点滴,后台还是决定下定决心记录一些,以便以后用到的时候找不着,实现这样的一个功能主要也是业务所需要的. 需求:要求统计所有会员在线人数,并根据会员在线状态同步改变人数. 之前用户登录使用session去控制,那么可以通过session进行在线用户人数统计,后来实现无状态不在依赖session作为用户在线的标准,使用Redis替换了Session,那么用户直接退出也好做,但是会存在用户直接关闭页面的情况,…
1.过期设置 Redis 中设置过期时间主要通过以下四种方式: expire key seconds:设置 key 在 n 秒后过期: pexpire key milliseconds:设置 key 在 n 毫秒后过期: expireat key timestamp:设置 key 在某个时间戳(精确到秒)之后过期: pexpireat key millisecondsTimestamp:设置 key 在某个时间戳(精确到毫秒)之后过期: 下面分别来看以上这些命令的具体实现. 1)expire:N…
本章对Redis服务器的数据库实现进行介绍,说明Redis数据库相关操作的实现,包括数据库中键值对的添加.删除.查看.更新等操作的实现:客户端切换数据库的实现:键超时相关功能的实现.键空间事件通知等. 以上这些功能,键空间事件通知是在src/notify.c中实现的,其他功能都是在src/db.c中实现的. 在redis.h中定义的redisServer数据结构,定义了redis服务器相关的所有属性,其中就包含了数据库的结构: struct redisServer { ... redisDb *…
ETCD目前在PowerDotNet已经被用于注册中心和配置管理(常见的配置中心在PowerDotNet中仅仅是一个小小的模块而已)中,作为基础设施的重要组成部分,ETCD的重要性不言而喻. 本文简单总结介绍下个人开发使用和管理ETCD的一些经验. ETCD诞生于CoreOS公司,它最初是用于解决集群管理系统中OS升级的分布式并发控制以及配置文件的存储与分发等问题. 按照官方解释(A distributed, reliable key-value store for the most criti…
JAVA整合Redis使用redisTemplate清除库中的所有键值对数据,清除所有缓存数据 Set<String> keys = redisTemplate.keys("*"); redisTemplate.delete(keys);…
1.mapValus(fun):对[K,V]型数据中的V值map操作(例1):对每个的的年龄加2 object MapValues { def main(args: Array[String]) { val conf = new SparkConf().setMaster("local").setAppName("map") val sc = new SparkContext(conf) val list = List(("mobin",22),…