Redis笔记

2018/01/12 20:51
阅读数 5

redis-server 启动redis服务脚本文件 ,前端启动redis命令 ctrl+C结束
24680:C 06 Dec 20:22:04.540 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
24680:M 06 Dec 20:22:04.542 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.0.6 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 #默认端口号
| `-._ `._ / _.-' | PID: 24680 #进程号
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'

 

redis-cli 终端操作脚本,启动终端命令
$ ps -A | grep redis 查看是否是启动着的
23757 ? 00:00:02 redis-server
$ redis-cli
127.0.0.1:6379>

redis-benchmark压力测试文件
redis-check-aof 和 redis-check-dump 检测备份文件脚本
--------------------------------------------------------------------------------------------------------------------------------------------------
#终端演示
127.0.0.1:6379> set name brand
OK
127.0.0.1:6379> set age 24
OK
127.0.0.1:6379> set address fuzhou
OK
127.0.0.1:6379> get name
"brand"
127.0.0.1:6379> get age
"24"
127.0.0.1:6379> get address
"fuzhou"
#其中name,age,address称为key
#key :除了"\n"和空格 不能作为名字的组成内容外其他内容都可以作为key的名字部分,名字的长度不做要求。
------------------------------------------------------------------------------
Redis支持的数据类型
keys:给存储在redis内存中的数据起的变量名字
禁止使用"my key"和"mykey\n"


Values:string 默认类型
list
set
sorted set
hash
------------------------------------------------------------------------------------------------------------------------------------------------------
keys键操作
exists key 测试指定key是否存在 例如:exists name
del key1 key2 ……keyn 删除指定的key 例如:del name age
type key 返回给定key的value类型 例如:type name
keys pattern 返回匹配指定模式的所有key, 例如:keys n* 返回n所有开头的key
rename oldkeyname newkeyname 修改key名字 例如:rename name name2
dbsize 返回当前数据库的key数量
expire key seconds 为key指定过期秒数 例如:expire name 10,10秒name自动消失
select db(0~15) 选择数据库 例如:select 3
move key db(0~15) 将key从当前数据库移动到指定数据库 例如:move name 3,将name移动到数据库3
flushdb 删除当前数据库中所有的key
flushall 删除所有数据库中的所有key
在此路径下查看数据库数量brand_chen@brand:/etc/redis$ sudo gedit redis.conf中搜索databases 16 描述16个数据库

-----------------------------------------------------------------------------------------------------------------------------------
string类型操作
set key value 设置key对应的值为string类型的value
mset key1 value1 key2 value2……keyn valuen 一次设置多个key的值
mget key1 key2 …… keyn 一次获取多个key的值
incr key 对值做++操作,返回新值
decr key 对值做--操作,返回新值
incrby key (integer数值) 对值加上指定的值,跟incr类似
decrby key integer 对值减去指定的值,跟decr类似
append key value 给指定的key字符串追加value
substr key [start(第几位从0开始)] 字符 [end(第几位)] 返回街区的key的字符串值
---------------------------------------------------------------------------------------------------------------------------------------------
list类型(允许重复)
通过push,pop操作链表的头部或者尾部添加删除元素,可以用作栈(上进上出)也可以用作队列(上进下出)
list操作:
lpush key string 在key对应list的头部添加字符串元素(l为lift)
rpush key string 在key对应list的尾部添加字符串元素(r为right)
rpop key 从list的尾部删除元素,并返回删除元素
lpop key 从list的头部删除元素,并返回删除元素
llen key 返回key对应list的长度,key不存在返回0,不是list类型返回错误
lrange key start end(下标从0开始) 返回指定区间内的元素,下标从0开始
ltrim key start end 截取list,保留指定区间内元素,其他的元素删除

-----------------------------------------------------------------------------------------------------------------------------------------------
set集合类型(不能有重复元素)
redis的set是string类型的无序集合,最大可以包含(2^32)-1个元素,可以实现取并集(union),交集(intersection),差集(difference),适合用在QQ好友推荐
set类型操作:
sadd key member 添加一个string元素到key对应的set集合中,成功返回1,元素已存在返回0,key对应的set不存在返回error
srem key member 从key对应set中移除给定元素,成功返回1
smove key1 key2 member 从key1对应set的member移动到key2的set中
scard key 返回set的元素个数
sismember key member 判断member是否在set中
sinter key1 key2……keyN 返回所有给定key的交集
sunion key1 key2……keyN 返回所有给定key的并集
sdiff key1 key2……keyN 返回所有给定key的差集
smembers key 返回key对应set的所有元素,结果是无序的
----------------------------------------------------------------------------------------------------------------------------------------------------
sort set排序集合类型(不能有重复元素)
和set一样也是string类型元素的集合
不同的是每个元素都会关联一个权,可以通过权值获取集合中的元素(值,权集合)。适合用在获得热门帖子。
sort set 操作:
zadd key 权 值 添加元素到集合,元素在集合中存在则更新对应的权
zrem key 值 删除指定元素,1表示成功,不存在返回0
zincrby key incr 值 按照incr幅度增加对应值的权,返回权值
zrank key 值 返回指定元素在集合中的排名(下标),集合中元素是权从小到大排序的
zrevrank key 值 同上,集合中权从大到小排序
zrange key start end 类似lrange操作从集合中去指定区间的元素,返回的是有序结果
zrevrange key start end 同上,返回结果是按权逆序
zcard key 返回集合中元素个数
zscore key element 返回给定元素对应的权
zremrangebyrank key min max 删除集合中排名在给定区间的元素(权值从小到大排序)
----------------------------------------------------------------------------------------------------------------------------------------------
hash类型(不是那么重要)
hset key field value 设置hash field为指定值,如果key不存在,则先创建
hget key field 获取指定的hash field
hmget key field1…… fieldN 获取全部指定的hash field
hmset key field1 value1 …… 同时设置hash的多个field
hincrby key field integer 将指定的hash field 加上给定值
hexists key field 测试指定field是否存在
hdel key field 删除指定的hash field
hlen key 返回hash的field数量
hkeys key 返回hash的所有field
hvals key 返回hash 的所有value
hgetall key 返回hash的所有field和value
---------------------------------------------------------------------------------------------------------------------------------------------------
持久化功能:redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据回复到内存里边,数据保存到硬盘的过程就称为“持久化”效果。

snap shotting 快照持久化:默认开启,一次性把redis中全部的数据保存一份到硬盘中,如果数据非常多(10~20G)就不适合频繁进行该持久化操作。默认备份文件名为dump.rdb。通常在redis.conf文件中有配置save 900 1,save 300 10,save 60 10000,表示修改key频率在900秒内只有1次,触发snap shotting;在300秒内修改10次key才触发snap shotting;在60秒内修改10000次key触发snap shotting。

精细持久化可以精确到秒级

手动发起快照:./redis-cli [-h 127.0.0.1 -p 6379] bgsave (本地不需要-h-p)

appendonlyfile(AOF持久化):把用户执行的每个“写”指令(添加,修改,删除)都备份的到文件中,还原数据的时候就是执行具体写指令而已
在redis.conf中:打开appendonly yes设置appendonly.aof默认保存文件,开启AOF持久化会清空redis数据库,修改配置文件需要重新启动进程ps -A | grep redis跟kill -9 进程号。#appendfsync always每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用。#appendfsync everysec每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐#appendfsync no完全依赖os,性能最好,持久化没有保证。由于一直保存到appendonly.aof文件中会过大可以用redis-cli bgrewriteaof命令来优化压缩appendonly.aof文件

快照持久化和AOF持久化为互补关系
-----------------------------------------------------------------------------------------------------------------------------------------------
redis的主从模式
一个负责“写”(master)其他负责“读”(slave)。
sudo gedit redis.conf打开配置文件找到slaveof <masterip> <masterport>设置自己的master是谁,重启redis,看到的就是master的数据,没有“写”的权限只有“读”的权限诺想要“写”的权限则修改配置文件中的slave-read-only yes,yes改为no。

--------------------------------------------------------------------------------------------------------------------------------------------------

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部