-
rpoplpush使用场景
查看全部 -
list操作命令3
查看全部 -
list操作命令2
查看全部 -
list操作命令
查看全部 -
hash操作命令2
查看全部 -
操作命令
查看全部 -
操作命令
查看全部 -
Key定义的注意点
查看全部 -
五种数据类型
查看全部 -
wget http://download.redis.io/releases/redis-3.0.0.tar.gz 下载
tar -vxzf redis-3.0.0.tar.gz 解压
cd redis-3.0.0
make 编译
make PREFIX=/usr/local/redis/ install 安装
cp redis.conf /usr/local/redis 复制文件
cd bin
./redis-server 前端启动
vim redis.conf 后端启动 wq保存
daemonize no改为daemonize yes
./bin/redis-server ./redis.conf 启动
ps -ef | grep -i redis 6379端口
./bin/redis-cli shutdown 停止
./bin/redis-cli 客户端
ping 连接测试 pong
set name imooc 保存 name(key)
get name 获得
keys * 获得全部
del name 删除
redis 的五种数据类型
字符串String
哈希hash
字符串列表list
字符串集合set,不可重复,4294个
有序字符串集合sorted set
key的长度,和规范,单线程
String
incr num 将num的值加一如果不存在,先初始化后加一
decr num 递减
incrby num 5 加5
decrby num 6 减3
append num 5 追加字符串
hash
hset myhash username jack hash键值对的形式加数据
hmset myhash username root age 21 多个数据录入
hget myhash username获得
hmget myhash username age获得多个
hgetall myhash 获得所有
hdel myhash2 username age删除
del myhash2删除集合
hincrby myhash age 5加五
hexists myhash username 判断存在否返回 0,1
hlen myhash 长度
hkeys myhash 所有key
hvals myhash 所有value
list
arraylist linkedlist
lpush mylist a b c 左端添加
rpush mylist 1 2 3 右端添加
lrange mylist 0 5 分段查看 0 -2也可以
lpop mylist 弹出左边
rpop mylist 淡出右边
lpushx mylist x 向mylist添加,如果mylist不存在不添加
lrem mylist 2 3 删除两个3, -2 3 从尾部删除2个三,0 2 删除所有的2
lset mylist 0 2指定位置添加
linsert mylist defore b 11指定元素位置前添加
linsert mylist after b 11指定元素位置后添加
rpoplpush mylist mylist2将mylist的元素弹出一个加到mylist2(消息队列)
set(记录ip ,记录某个商品的购买记录,)
sadd myset a b c添加
srem myset a b 删除
smembers myset 查看
sismember myset a 查看是否存在
adiff myset1 myset2 查看差集
sinter myset1 myset2 查看交集
sunion myset1 myset2 查看并集
scard myset 查看长度
srandmenber myset 随机返回一个数
sdiffstore myset1 myset2 myset1 将1和2相差的值加到1
sinterstore myset1 myset2 myset1 将1和2交集的值加到1
sunionstore myset1 myset2 myset1 将1和2并集的值加到1
sorted-set有序,分数排序 游戏积分排名,微博热点,索引数据
zadd mysort 70 zz 80 ls 90 ww 添加
zscore mysort zs 获得分数
zcard mysore 获得数量
zrem mysort tom ww 删除
zrange mysort 0 -1 withsores 查看数据,withsores带不带分数
zrevange mysore 0 -1 withsores 降序
zremrangebyrank mysort 0 4按照范围删除
zremrangebyscore mysort 80 100按照分数范围删除
zrangebyscore mysore 0 100 withsores limit 0 2查看指定范围的数据切带分数和limit
zincrby mysort 3 ls给指定对象分数加3
zcount mysort 80 90 分数段的数量
通用操作
key * 获得所有
key my?查看my匹配的key
del my1 删除
exists my1 判断是否存在
get company 获取
rename company newcompany 重命名
expire newpany 1000 过期时间1000秒
ttl newcompany查看过期时间
type mylist查看类型
特性
多数据库,最多16个数据库
select 1(0到15)连接1号数据库
move myset 1移动myset到1号数据库
事务
multi exec discard
multi开启
exec提交
discard回滚
持久化
RDB:指定时间间隔,将内存数据写入硬盘
AOF:日志记录所有的操作
无持久化:缓存
查看全部 -
aof方式: 优势:1.带来更高的数据安全性。有三种同步策略。每秒同步、每修改同步、不同步。 2.AOF 文件是一个只进行追加操作的日志文件,因此在写入过程中即使出现宕机现象也不影响之前已经存在的内容。 3.如果日志过大,redis可以启动重写机制。在重写过程中产生的对数据库操作记录会保存在一个新文件中,等到重写完成后再追加到现有的文件中。 4.AOF 文件有序地保存了对数据库执行的所有写入操作 劣势:1.对于相同数量的数据集而言,文件比rdb方式要大。 2.效率比rdb低
查看全部 -
RDB 优势: 1.数据库只包含一个文件,通过文件备份策略,定期配置,恢复系统灾难 2.压缩文件转移到其他介质上 3.性能最大化,redis开始持久化时,分叉出进程,由子进程完成持久化的工作 ,避免服务器进程执行I/O操作,启动效率高 劣势: 1.无法高可用:系统一定在定时持久化之前宕机,数据还没写入,数据已经丢失 2.通过fock分叉子进程完成工作,数据集大的时候,服务器需要停止几百毫秒甚至1秒 配置: cd /usr/local/redis vim redis.conf 默认: save 900 1 #每900秒至少1个key变化,持久化一次,到内存一个快照 save 300 10 #每300秒至少10个key变化,往硬盘写一次 save 60 10000 #每60秒至少10000个key变化,写一次 dbfilename dump.rdb #数据的文件名 dir ./ #保存的路径,redis路径下
查看全部 -
redis 多数据库 最多有16个数据库 0 -15客户端可指定连接某个数据库 默认为0 select 0 连接第一个数据库 move myset 1 将myset号数据库移到1号数据库 multi(相当于开启session) exec(提交) discard(回滚) 事务串行 某个失败后面继续
查看全部 -
Redis数据结构(Sort-set):可存储有序但不重复的数据,根据分数指定存储顺序 命令: (1)存:zadd 列名 [分数 值]... (2)查分数:zscore 列名 值 (3)查数量:zcard 列名 (4)单删:zrem 列名 值...;范围删除:zremrangebyrank 列名 [begin,end] (5)升序查值:zrange 列名 [begin,end] <withscores>(两者可为正负数,负数则从反方向开始计数,正数从0开始,负数从-1开始)(withscores带分数,可选项) (6)降序查值:zrevrange 列名 [begin,end] <withscores>(两者可为正负数,负数则从反方向开始计数,正数从0开始,负数从-1开始)(withscores带分数,可选项) (7)分数查值:zrangebyscore 列名 [begin,end] <withscores> (8)分页查值:zrangebyscore 列名 [begin,end] <withscores limit [begin,end]>
查看全部 -
概述:存储Set 和List类型不同的是,Set集合中不允许出现重复的元素 Set可包含的最大元素数量是4294967295 存储set常用命令: 1.添加/删除元素:sadd、srem sadd set a b c srem set a b c 2.获得集合中的元素:smembers、sismember smembers set sismember set a #判断set集合中是否有a 3.集合中的差集运算:sdiff sdiff set1 set2 #集合set1和集合set2存在的差集 4.集合中的交集运算:sinter sinter set1 set2 5.集合中的并集运算:sunion sunion set1 set2 6.扩展命令: scard set #获取set集合中的个数 sdiffstore db1 set1 set2 #将set1和set2差集存到db1中 sinterstore db2 set1 set2 #将set1和set2交集存到db2中 sunionstore db3 set1 set2 #将set1和set2并集存到db3中 存储Set使用场景:(访问博客的ip,客户的交集) 跟踪一些唯一性数据 用于维护数据对象之间的关联关系
查看全部
举报