redis 数据库

Redis介绍
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s ,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:
1) 字符串类型 string
2) 哈希类型 hash
3) 列表类型 list
4) 集合类型 set
5) 有序集合类型 sortedset
1.3.1 redis的应用场景
• 缓存(数据查询、短连接、新闻内容、商品内容等等)
• 聊天室的在线好友列表
• 任务队列。(秒杀、抢购、12306等等)
• 应用排行榜
• 网站访问统计
• 数据过期处理(可以精确到毫秒
• 分布式集群架构中的session分离

下载安装
1. 官网:https://redis.io
2. 中文网:http://www.redis.net.cn/
3. 解压直接可以使用:
* redis.windows.conf:配置文件
* redis-cli.exe:redis的客户端
* redis-server.exe:redis服务器端
数据类型
所有的数据都是key-value形式,所谓的数据类型指的是value的类型,key的类型全部都是字符串。
*

命令操作*

  • 操作String

     新增:set username jack
     查看:get username
     删除:del username
     修改:set username lucy
     其他:
     	  incr age		把age的值递增1
     	  incryby age 10	递增10
     	  decr age		递减1
     	  decrby	age	10	递减10
     	  append key  value		不存在就新建,存在就追加
    
  • 操作hash

     新增:
     	hset user1 name jack
     	hmset user2 name lucy age 18
     查看:
     	hget user1 name
     删除:
     	hdel user1 name
     修改:
     	hset user1 username lucy    --修改username的值为lucy
     其他:
     	hmget user1 name age		获取user1中的name和age的值
     	hgetall	user1			获取user1中的所有key以及vlaue的值
     	hincrby user1 age 10			为user1里面的age属性的值递增10(递减-10)
     	hexists user2 addr				判断user2中是否包含adr属性
     	hlen user1 						获取user1包含多少个属性
     	hkeys user1						获取user1中的所有属性
     	hvals user1 					获取user1中的所有属性的值
    
  • 操作List

     新增:
     	lpush names jack lucy mary  -- names不存在就新建,存在就新增值,左边新增
     	rpush names jack 			--从右边新增
     查看:
     	lrange names 0 -1			--查所有,不想查所有修改-1
     删除:
     	lrem names 2 jack			从左开始,删除2个jack(右往左就写负数)
     修改:
     	lset names 2	jackson		--把下标为2的值换成jackson
     其他:
     	lpushx	names    jack	如果存在names就加入到左边,否则不作处理
     	rpushx	names	 jack    xxxxx
     	lpop names 						从左边开始弹出数据
     	rpop names 						从右边开始弹出数据
     	llen names 						查看names中有多少个数据
     	linsert names before a aaa		在names中的a的前面插入aaa(如果有重复的,以左边第一个为准)
     	linsert names after b bbb 		在names中的b的后面插入bbb(如果有重复的,以左边第一个为准)
     	rpoplpush names names2			把names中的最右边的数据弹到names2的最左边去
    
  • 操作set

     增加:
     	sadd    addrs    Nanjing   Beijing  dongjing  
     查看:
     	smembers   addrs
     删除:
     	srem addrs nanjing			--删除addrs中的nanjing
     修改:
     	
     移动:
     	smove addrs new_addrs Nanjing		--把addrs中的nanjing移动到new_addrs
     其他:
     	sismembers fr1 a 				判断fr1中是否存在a
     	sdiff fr1 fr2 					获取fr1的个人独有的数据(个人好友)
     	sinter fr1 fr2 fr3				求交集(共同好友)
     	sunion fr1 fr2 					求并集
     	srandmember fr1 				随机从fr1中读取一个值
     	sdiffstore fr4 fr1 fr2 			把fr1-fr2的结果存储到fr4中
     	sinterstore fr5 fr1 fr2 		把fr1和fr2的交集存储到fr5中
     	sunionstore fr6 fr1 fr2 		把fr1和fr2的并集存储到fr6中
    
  • 操作SortedSet

    增加:
    zadd score 90 jack 80 mary 100 rose --指定jack分数90,mary分数80,rose100

    查看:
    zrange score 0 -1 withscores
    删除:
    zrem score kangkang mary
    修改:
    zincrby score 3 kangkang 增加分数
    其他:
    zcard games 获取gamgs中的成员数量
    zrem games1 a b 删除games1中的a,b元素
    zrange games 0 3 withscores 查询games中0到3的所有成员以及其对应的分数
    zrange games 0 -1 withscores 查询games中所有成员以及其对应的分数(从小到大)
    zrevrange games 0 -1 withscores 查询games中所有成员以及其对应的分数(从大到小)
    zremrangebyrank games1 0 1 删除下标从0到1之间的数据
    zremrangebyscore games1 45 55 删除games1中分数在45到55之间的元素
    zrangebyscore games 55 85 withscores limit 0 3 (分页)
    查询分数在55到85之间,按照从小到大排序,取出从第0个开始的一共3个结果

     zincrby games1 20 dd			给games1中的dd增加20分(减分改成-20)
     zcount games1 20 80 			获取games1中20分到80分之间的成员的总的数量
     zrank games1 bb 				获取bb在games1中的排名(从小到大)
     zrevrank games1 bb 				获取bb在games1中的排名(从大到小)
    

通用命令


keys * 查看当前库有哪些键
select 1 选择1号库
type key 获取key的具体类型
exists keys 判断指定key是否存在于数据库中
rename k k1 把k重命名成k1
expire key 1000 设置key的过期时间(单位是秒)
move key 6 把当前库中的key移动到6号库中
dbsize 返回当前数据库中key的数目
info 获取服务器的信息和统计
flushdb 清除当前数据库中的数据
flushall 删除所有数据库中的所有的key

持久化
rdb:
快照备份(默认使用的备份方案)

save 900 1
save 300 10
save 60 10000
指定配置文件启动
redis-server.exe redis.windows.conf

**aof:**
	日志记录

打开aof备份
appendonly yes
设置备份策略
appendfsync always
appendfsync everysec
appendfsync no

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值