redis基本数据类型-redis系列教程
2017-06-24 11:29
309 查看
基础知识
单进程
redis程序采用的是单进程模型来处理客户端的请求,对读写等事件的响应是通过对epoll函数的包装来实现。redis的实际处理速度完全依靠主进程的执行效率,假如同时有多个客户端并发访问,则服务器处理能力在一定情况下将会下降。假如要提升服务器的并发能力,那可以采用在单台服务器上部署多个redis进程的方式。
多数据库
redis每个数据库是用从0开始递增的数字来命名的,初始化
16个(可以在配置文件中修改)数据库,默认使用
0号数据库,你也可以使用
select [数字]来切换数据库。
dbsize查看当前数据库KEY的数量
move key db在多个数据库之间移动数据
flushdb清除当前数据库的全部数据
redis不支持自定义数据库名字
redis不支持为每个数据库设置不同的访问密码(只能是统一的密码)
多个数据库之间并不完全的隔离,使用
flushall可以清空全部的数据。
redis的数据库更像是一个命名空间
基本数据类型
KEY(键)
key是字符串类型,如果中间有空格或者转义字符要用引号引起来,当然不建议这么做,这在低版本上可能不被支持。命名建议
对象类型:对象标识(ID):对象属性,例如
user:u100001:age
多个单词之间用
.分隔,例如
user:u100001:body.head
在可读的情况下key应该尽量有意义并且简短
VALUE(值)
String
可以存储String/Integer/Float类型的数据,甚至是二进制数据,一个字符串最大容量是512MList
底层实现上不是数组而是链表,也就是说在头部和尾部插入一个新元素,其时间复杂度是常数级别。当然也有弊端,比如元素定位比数组慢。Set
无序不可重复列表,是通过HashTable来实现。Hash
按照K/V方式来存储字符串,类似于java中的MapZSet
有序且不可重复,根据Score来排序。使用散列表和跳跃表来实现,所以读取中间部分数据也很快。Geo
地理空间坐标的存储,很方便的计算两点之间的直线距离。基本操作
键操作
keys pattern获得符合规则的键名列表,pattern支持glob风格通配符格式
?匹配一个字符
*匹配任意字符
[]匹配中括号内的任一字符,可以用来表示一个范围
\x匹配字符x,用于转义符号
127.0.0.1:6379[1]> keys * 127.0.0.1:6379[1]> keys t?[a-z]
exists key判断指定键是否存在,如果存在返回1(非0即真)
scan cursor [MATCH pattern] [COUNT count]基于游标的迭代器,可以用来遍历键(分页浏览键)。
127.0.0.1:6379[1]> scan 0 count 3 1) "5" 2) 1) "myhash" 2) "myzset" 3) "a" 127.0.0.1:6379[1]> scan 5 count 3 1) "7" 2) 1) "myset" 2) "key2" 3) "myset2" 4) "myset3"
删除
del key删除指定键值
del命令虽不支持通配符,但可以结合linux管道和xargs命令来自定义删除。例如
redis-cli keys * | xargs redis-cli del,如果键名称中有空格可能并不会被删除。
类型
type key获得键值的数据类型
数据都是以string类型存储,在做计算时会自动进行类型转换。
重命名
rename key newkey修改指定键名称
renamenx key newkey如果新的键名不存在则改名,防止已存在键被覆盖。
生存&过期时间
expire key seconds修改键的生存时间(单位秒)
pexpireat key milliseconds-timestamp修改键的生存时间(单位毫秒)
expireat key timestamp修改键的到期时间(时间戳),从1970年1月1日起的秒数
pexpireat key milliseconds-timestamp修改键的到期时间(时间戳),从1970年1月1日起的毫秒数
ttl key返回键剩余生存时间(单位秒)
pttl key返回键剩余生存时间(单位毫秒)
randomkey返回随机一个键
迁移
migrate host port key| destination-db timeout [COPY] [REPLACE] [KEYS key]在两个redis实例之间迁移键
MIGRATE 192.168.1.34 6379 "" 0 5000 KEYS key1 key2 key3
相关文章推荐
- 缓存系列之三:redis安装及基本数据类型命令使用
- redis教程(三):Redis数据类型及基本的使用
- Redis入门教程(二)—基本数据类型
- Kotlin入门教程系列(二) 基本数据类型 Number
- PHP5薄荷教程[4]基本数据类型
- JavaScript语法入门系列(三) 基本数据类型及其对应对象类型
- 16位计算机中C++常用基本数据类型描述 和 字符常量 摘自 钱能C++教程
- 第五 讲 : 预定义数据类型 -【天轰穿.Net4趣味编程系列视频教程-vs2010轻松学习C#】
- 【D3.V3.js数据可视化系列教程】--(九)D3的数据类型
- MongoDB学习笔记系列:(二) Shell基本操作和BSON数据类型
- Java学习系列(二)Java注释、标识符、基本数据类型及其转换易错点详解
- webservice系列1---基于web工程上写一个基本数据类型的webservice
- Redis入门教程:特性及数据类型的操作
- 二、Redis的基本数据类型
- Java学习系列(二)Java注释、标识符、基本数据类型及其转换易错点详解
- 【无限互联】iOS开发视频教程—2.3 iPhone开发之OC变量和基本数据类型2
- redis数据类型与基本操作
- redis基本数据类型分析