redis数据库学习笔记
1,not only sql;
2,非关系型数据库。
3,特点:
key=>value形式对数据进行存储,比如:json,array
水平可扩展的??什么意思?
4,:
解压缩:tar –zxvf redisxxxx
cd redisxxx
make //如果没有gcc编译器,请安装gcc yum install gcc
cp redis.conf /etc
cd src cp redis-benchmark redis-cli redis-server mkreleasehdr.sh redis-check-aof redis-check-dump redis-sentinel /usr/bin/
cd /usr/bin / redis-server /etc/redis.conf ps –ef | grep redis
ps –ef | grep redis
redis-cli
10,redis-cli shutdown
5,数据类型:string,hash.list,set zet;
sring:二进制安全的,可以包含任何数据,比如图片或者序列化数据。
6,操作方法
字符串操作:
set name wanghongli 同一个键只能有一个
exists mykey 判断某个键值是否存在。存在返回1,不存在返回0
setnx 如果key存在返回0 ,不覆盖。
setex 指定key value 的有效期 过期则返回空(nil) set name 10(s) wanghongli
setrange name 6 gmail.com 设定name字符串从第六个开始替换成gmail.com 成功返回的是修改后字符串的个数。
mset 成功ok 失败 0; mset key1 wanghongli key2 wanghongli2 key3 wanghongli3; 设置多个键值 key value key value
msetnx 成功ok 失败0 mset key1 wanghongli key2 wanghongli2 如果有一个存在,那么设置就会失败。
get key 获取字符串的值。
getset key value 设置新值,返回旧值。 Getset name wanghongli
getrange name 0 5 返回值得0到5的字符串。
mget key1 key2 key3
incr key5 将值加1 返回。设置某一个键
incrby key5 5 自增5
Decr key5 自减
Decrby key5 10; 自减10
append 给指定的key追加value append key_name .net
strlen strlen name 返回值得长度。
hash数据类型
是一个string类型的field 和value的映射表。特别适用于存储对象。减少内存,方便存取整个对象。
hset设置一个hash表。 Hset user:001 name wanghongli
hsetnx hsetnx user:001 name ‘wanghongli’
hmset 批量设置 hmset user:003 name wanghngli age 25 sex 1
hget user:001 name
hmget user:003 name age sex
hincrby hincrby user:003 age 20
hexists user:003 name 成功返回1
hlen 返回hash中字段数量 hlen user:003
hdel 删除字段 hdel user:003 age
hkeys 查看字段 hkeys user:001
hvals 返回hash表中所有的value hvals user:001
hgetall 获取某个hash中全部的key value
list类型
是一个链表,主要功能是push:向链表中压入元素。Pop 弹出一个元素。Redis的list类型其实就是一个每个子元素都是string类型的双向列表,list既可以作为栈,也可以作为队列。
lpush 从头部压入一个元素
lrange listname 0 -1 从头第一个元素到尾的第一个元素。
rpush尾部压入一个元素。rpush list2 ‘wanghongli’ rpush list2 ‘helloworld’ 先进先出
lrange 0 -1
linsert 在key对应的特定位置前或后添加字符串。
linsert list1 before world hello 在world前面插入一个hello元素。
lset 设定list中指定下标的元素值。lpush list1‘hello’ lset list1 0 ‘world’ lrange 0 -1;
lrem 从key对应的list 中删除n个和value相同的元素。(n<0 从尾删除,n=0全部删除)
lrem list5 1 ‘hello’ 从list5中删除一个和hello相同的值。
ltrim:保留指定key的值范围内的数据。
rpush list8 ‘one’ rpush list8 ‘two’ ltrim list8 1 -1 保留下来的顺序。
lpop :list头部删除一个元素,并返回删除的元素。Lpop list_name 相当于php中的array_pop(array_name);
rpop : list尾部弹出一个元素,并返回弹出的元素 rpop list_name
lpush:从头压入元素
rpush
rpoplpush :从列表尾部移除元素,从头部添加元素。
Rpoplpush
mysqllist5 mysqllist6 从mysqllist5 尾部弹出元素,压入到mylist6 头部
lindex 返回名称为key的list中index位置的元素。 Lindex mylist1 1;
set类型:无序集合,不允许重复。
sadd 向集合中添加一个元素。sadd myset “hello”
smembers myset1 查看集合中又那些元素
srem myset1 “wangholngli” 删除集合中的一个元素。
spop 从集和里面随机的弹出一个元素 spop myset
sdiff 两个集合的差集 sdiff myset1 myset2 以第一个集合为标准。
sdiffstore 将返回回来的差集存储到另外一个集合里面 sdiffstore myset3 myset1 myset2
sinte