redis 简介:
高性能的key-value数据库:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份
redis 优势:
- 高并发读写的性能
- 大数据量扩展
- 操作简单,灵活
redis 优势:
- 高速读取数据
- 减轻数据库负担
- 多种数据结构的支持
与memcache的比较:
- 支持的数据类型更多,memcache支持字符串,redis支持的类型有字符串,哈希,链表,集合,有序集合
- redis把数据不仅存到内容还周期性的存到磁盘里,memcache只能存到内存中
- memcache的键存储数据最大是1M,而redis最大是1G
linux安装redis和使用(centos为例):
wget http://download.redis.io/releases/redis-2.8.17.tar.gz
然后解压
tar xzf redis-2.8.17.tar.gz
接着定位到redis的位置
cd redis-2.8.17
进行编译
make
make完后 执行安装到具体的一个位置
make PREFIX=/usr/local/redis install
执行安装之后,切换到安装的位置
cd /usr/local/redis
此时该位置下只有一个bin 里面有五个文件 分别有不一样的作用
redis-benchmark 命令性能测试m命令
redis-check-aof 和redis-check-dump是日志检测工具
redis-server是服务器启动的命令
redis-cli是客户端连接服务器的命令
接下来 进行复制配置文件
从redis的解压目录里面把redis.conf配置文件复制到redis的安装目录下
此时我们所在位置是 redis的安装目录下的bin文件下的位置
所以 我们执行命令(/root/redis-2.8.17是解压的配置文件的位置)复制到此时文件夹的外面一层
cp /root/redis-2.8.17/redis.conf ../
执行之后 我们 cd.. 退出 就可以看到 在redis安装目录下有一个bin文件夹还有一个redis.conf的文件
然后 vim redis.conf 编辑这个文件 修改内容
进入文件之后 执行 /dae
就能找到一句话 daemonize no 将这个no 改成yes 按insert按键进行修改 之后按Esc 输入 :wq 进行保存退出
这样能让redis能在后台执行
接下来 还是停留在 redis的安装目录下
然后进行启动服务
./bin/redis-server redis.conf
然后检测下有没有启动成功
netstat -tunpl |grep 6379
如果成功会出现类似下面的内容
接下来就是客户端连接redis服务
还是停留在 redis的安装目录下
./bin/redis-cli
这样就能完美的在linux上使用redis了
window本地使用redis:
启动redis:
cd 到redis的地方
然后执行 redis-server 就能开启服务
使用redis:
保持刚才启动redis的窗口 然后再开一个窗口
执行命令 redis-cli
即可连接成功
数据类型:
类型1:string 字符串
是redis的最基本的类型
可以包含任何数据 包括jpg图片 或者序列化的对象
set命令 :设置键值
语法:set 键名称 值
如:set email [email protected]
get命令:获取键值
语法:get 键名称
如:get age
incr命令:将键值+1
语法:incr 键名称
如:incr age 返回的值等于原来的值+1
incrby命令:键值加上任意值
语法:incrby 键名称 要加上的值
如:incrbt age 2 返回的值等于原来的值+2 以此类推
类型2:hash哈希
用来存储对应的MySQL中一行的数据 类似于关联数组
hset命令: 设置hash里面的field和value的值 一次只能一个键值
语法:hset 键名称 field value
如:hset user:id:1 id 1
hset user:id:1 name zzs
hset user:id:1 age 12
hget命令:获取某一条数据的某个键值 一次只能获取一个
语法:hget 键名称 field
如:hget user:id:1 id
hget user:id:1 name
hget user:id:1 age
hmset命令:一次设置多个键值
语法:hmset 键名称 field1 value1 field2 value2 field3 value3 field4 value4
如:hmset user:id:1 id 1 name clp age 12
hget命令:一次获取多个键值
语法:hmget 键名称 field1 field2 field3 field4
如:hmget user:id:1 id name age
hgetall命令:获取指定hash中的field和value
语法:hgetall 键名称
如:hgetall user:id:1
类型3:list链表
双向链表,通过push头部添加 pop尾部删除
list可以用作栈,也可以用作队列
上进下出:栈 数据先进后出 头部添加元素 从尾部取出先取后面添加的
下进上出:队列 数据先进先出 尾部添加元素 从头部取出取前面添加的
lpush命令:从链表的头部添加元素 (栈)
语法:lpush 链表名称 元素
如:lpush list1 hzy
lpush list1 cnc
lrange命令:获取链表里的元素
语法:lrange 链表名称 开始下标 结束下标(等于-1 表示获取全部)
下标从0开始
如:lrange list1 0 2
rpush命令:从链表的尾部添加元素(队列)
语法:rpush 链表名称 元素
如:rpush list2 cnc
rpush list2 hzy
ltrim命令:保留指定范围的元素 其他元素被删掉
语法:rtrim 链表名称 开始下标 结束下标 (等于-1 表示获取全部)
如:ltrim list2 0 -1
lpop命令:从链表头部删除一个元素 返回删除的元素 (队列)
语法:lpop 链表名称
如:lpop list2
类型4:set集合 (string的无序集合)
除了基本的增加删除操作以外,
还包含集合的取并集,交集,差集
运用最常见的功能就是好友推荐的功能
sadd命令:向集合添加元素
语法:sadd 集合名 元素1 元素2 元素3 元素4.。。。。
如:sadd set1 zzs clp cnc
smembers命令:获取集合中的元素
语法:smembers 集合名
如:smembers set1
sdiff命令:差集
语法:sdiff 集合A 集合B
如:sdiff set1 set2
sinter命令:交集
语法:sinter 集合1 集合2
如:sinter set1 set2
sunion命令:并集
语法:sunion 集合1 集合2
如: sunion set1 set2
scard命令:获取集合中元素的个数
语法:scard 集合名
如: scard set1
类型5:zset有序集合
是set的升级版本,在set的基础上增加顺序属性,
属性在添加和修改的时候可以指定,每次指定,zset会自动重新按照新的序号值进行排序,
操作中的key理解为zset的名字
zadd命令:有序集合添加元素 如果元素存在 则更新序号
语法:zadd 有序集合名 序号 内容
如:zadd zset3 1 we 3 our 2 zzs
zrange命令:按序号升序获取有序集合的元素(默认升序)
语法:zrange 有序集合名 开始下标 结束下标(等于-1 表示获取全部)
如:zrange zset3 0 2
zrevrange命令:按照序号降序获取有序集合的元素
语法:zrevrange 有序集合名 开始下标 结束下标 (等于-1 表示获取全部)
如:zrevrange zset3 0 -1
Redis常用命令:
1.keys
如:加上* 获取redis上所有的键(key)
如:keys set* 获取set名字相似的键(key)
2.exists
判断一个键(key)是否存在
语法:exists 键名 如果存在这个键返回1 不存在返回0
如:exists list
3.del
删除指定的键
语法:del 键名 删除成功 返回1 删除失败 返回0
如:
4.expire
设置键的有效时长(秒)
语法:expire 键名 秒 设置成功返回1 失败返回0
如:
5.ttl
返回一个键剩余的过期时间
语法:ttl 键名
如:
6.type
返回key的数据类型 string set list zset hash
语法:type 键名
如:
7.select
选择数据库 redis有0-15号数据库 默认是0
语法:selct 数据库序号
如:select 1
8.dbsize:
返回当前数据库的键的数量
语法:dssize
如:
9.flushdb(慎重使用)
清空当前数据库的所有的键
10.flushall
清空所有数据库的所有的键
安全认证:
设置客户端连接之后进行任何操作之前的密码
打开redis.conf 找到requirepass所在行
# requirepass foobared
去掉#号 然后将foobared改成要配置的密码
配置之后 保存文件 进行重启redis即可
验证方式:
方式一:通过客户端登陆到服务器时 redis-cli -a 密码
redis-cli -a 123456
方式二:登陆到服务之后,使用auth来进行验证 auth 密码
auth 123456
关于redis的入门知识就写到这里,后续会写一些关于redis在实际开发过程中的应用
希望多多关注,觉得有用的,加个关注!