redis

1、redis概述
redis是一种nosql数据库他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,并且他
比memcached支持更多的数据结构( string ,1ist列表[队列和栈] , set[集合],sorted set[有序集合] , hash(hash表) )。相关参考文
档: htp://redisdc.com/index.html


2、Redis使用场景
1.登录会话存储,存储在redis中,与memcached相比,数据不会丢失。
2.排行版/计数器:比如一些秀场类的项目,经常会有一些前多少名的主播排名。还有一些文章 阅读量的技术,或者新浪微博的点赞
数等。
3.作为消息队列:比如celery就是使用redis作为中间人。
4.当前在线人数:还是之前的秀场例子,会显示当前系统有多少在线人数。
5.一些常用的数据缓存:比如我们的BBS论坛,板块不会经常变化的,但是每次访问首页都要从mysql中获职,可以在redis 中
缓存起来,不用每次请求数据库。
6.把前200篇文章缓存或者评论缓存: -般用户浏览网站,只会浏览前面一部分文章或者评论 ,那么可以把前面200篇文章和对应的
评论缓存起来。用户访问超过的,就访问数据库,并且以后文章超过200篇,则把之前的文章删除。
7.好友关系:微博的好友关系使用redis 实现。
8.发布和订阅功能:可以用来做聊天软件。


3、Redis在Linux系统上的安装与启动
1、安装:yum -y install redis
2 、启动:service redis start
3、停止:service redis stop
4、连上Redis:redis-cli -p 6379 -h 127.0.0.1


4、Redis的字符串基本操作
1、设置一个值:set username dcp(当设置的值中间有空格时,值必须要加双引号)
2、或者一个值:get username
3、删除一个值:del username
4、创建时设置过期时间:set username dcp EX 10
5、查看过期时间:ttl username
6、创建后设置过期时间:expire username 10
7、查看所有key :key*


5、Redis的列表操作
1、在列表左边添加元素:
lpush key value
将值value 插入到列表key的表头。如果key不存在,一个空列表会被创建并执行lpush操作。当key存在但不是列表
型时,将返回一个错误。
2、在列表右边添加元素:
rpush key value
将值value插入到列表key的表尾。如果key不存在,一个空列表会被创建并执行RPUSH操作。当key存在但不是列表类型时,
返回一个错误。
3、查看列表中的元素:
Irange key start stop
返回列表key中指定区间内的元素,区间以偏移量start 和stop指定如果要左边的第-一个到最后的一个1range key 0
-1。
4、移除列表中的元素
①、移除并返回列表key的头元素
lpop key
②、移除并返回列表的尾元素
rpop key
③、移除并返回列表key的中间元素
lrem key count value
5、指定返回第几个元素:
lindex key index(index为下标值)
将返回key这个列表中,索引为index 的这个元素。
6、获取列表中的元素个数:
llen key
llen languages
7、删除指定的元素:
Irem key count(个数) value(要删的值)
如:
Irem languages 1 www.baidu.com
根据参数count的值,移除列表中与参数value相等的元素。count 的值可以是以下几种:
count> 0: 从表头开始向表尾搜索,移除与value相等的元素,数量为count。
count< 0:从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值。
count= 0:移除表中所有与value 相等的值。


6、Redis的集合操作
1、添加元素:
sadd set valuel value2....
如:
sadd team xiaotuo datuo
2、查看元素:
snembeers set

snembers team
3、移除元素:
srem set member...
如:
srem team xiaotuo datuo
4、查看集合中的元素个数:
scard set
如:
scard teanl
5、获取多个集合的交集:
sinter set1 set2
如:
sinter teaml team2
6、获取多个集合的并集:
sunion set1 set2
如:
sunion teaml team2
7、获取多个集合的差集:
sdiff set1 set2
如:
sdiff teanl team2


7、Redis的哈希操作
1、添加一个新值:
hset key field value
如:
hset website baidu baidu. com
将哈希表key中的域field的值设为value 。
如果key不存在,一个新的哈希表被创建并进行HSET 操作。如果域field 已经存在于哈希表中,旧值将被覆盖。
2、获取哈希中的field 对应的值:
hget key field
如:
hget website baidu
3、删除field中的某个field :
hdel key field
如:
hdel website baidu
4、获取某个哈希中所有的field 和value :
hgeta11 key
如:
hgetall website
5、获取某个哈希中所有的field :
hkeys key
如:
hkeys website
6、获取某个哈希中所有的值:
hvals key
如:
hvals website
7、判断哈希中是否存在某个field :
hexits key field
如:
hexits website baidu
8、获取哈希中总共的键值对:
hlen field
如:
hlen website

8、Redis的事务操作
1、事务操作: Redis事务可以-次执行多个命令,事务具有以下特征:
①隔离操作:事务中的所有命令都会序列化、按顺序地执行,不会被其他命令打扰。
②原子操作:事务中的命令要么全部被执行,要么全部都不执行。
③开启一个事务:
multi
以后地行的所右余企,凯在 诗入市各中村行的。
④执行事务:
exec
会将在multi和exec中的操作- -并提交。
⑤取消事务:
discard
会将multi后的所有命令取消。
⑥监视一个或者多个key :
watch key...
监视一个(或多个)key, 如果在事务执行之前这个(或这些) key被其他命令所改动,那么事务将被打断
⑦取消所有key的监视:
unwatch

原文地址:https://www.cnblogs.com/dcpb/p/13745281.html